欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate操作数据库之基础操作

程序员文章站 2022-06-01 17:05:46
...

添加用户(基础操作)

    @Test
    public void testAdd(){
        //第一步:加载hibernate核心配置文件
        //理解:在src下面找到名称是hibernate。cfg.xml
        //在hibernate里面封装对象
        Configuration configuration = new Configuration();
        configuration.configure();
        //第二步:创建SeeeionFactory对象
        //理解:读取hibernate核心配置文件内容,创建SessionFactory对象
        //在过程中,根据映射关系,在配置数据库里面把表创建
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        //第三步:使用SessionFactory创建Session对象
        //理解:类似于jdbc的连接数据库
        Session session = sessionFactory.openSession();
        //第四步:开启事务
        Transaction transaction = session.beginTransaction();
        //第五步:写具体的crud操作
        User user = new User();
        user.setUsername("寒诩");
        user.setPassword("23");
        user.setAddress("齐齐哈尔");
        //调用session方法实现添加
        session.save(user);
        //第六步:提交事务
        transaction.commit();
        //第七步:关闭资源
        session.close();
        sessionFactory.close(); 
    }

添加用户(封装一)

  • 工具类HibernateUtils
public class HibernateUtils {
    /**
     * 用于生产SessionFactory对象
     *     SessionFactory对象产生耗资源,故只生产一个SessionFactory对象
     */
    private static final Configuration configuration;
    private static final SessionFactory sessionFactory;
    static {
        configuration = new Configuration().configure();
        sessionFactory = configuration.buildSessionFactory();
    }
    //提供方法返回与本地线程绑定的session对象的方法
    public static Session getSessionObject(){
        return sessionFactory.getCurrentSession();  
    }
    //提供方法返回SessionFactory对象
    public static SessionFactory getSessionFactory(){
        return sessionFactory;
    }
    public static void main(String[] args) {

    }
}
  • curd操作
    @Test
    public void testAdd(){
        SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
        //第一步:使用SessionFactory创建Session对象
        //理解:类似于jdbc的连接数据库
        Session session = sessionFactory.openSession();
        //第二步:开启事务
        Transaction transaction = session.beginTransaction();
        //第三步:写具体的crud操作
        User user = new User();
        user.setUsername("寒诩");
        user.setPassword("23");
        user.setAddress("齐齐哈尔");
        //调用session方法实现添加
        session.save(user);
        //第四步:提交事务
        transaction.commit();
        //第五步:关闭资源
        session.close();
        sessionFactory.close();
    }

添加用户(封装二)

  • 工具类HibernateUtils
public class HibernateUtils {
    /**
     * 用于生产SessionFactory对象
     *     SessionFactory对象产生耗资源,故只生产一个SessionFactory对象
     */
    private static final Configuration configuration;
    private static final SessionFactory sessionFactory;

    static {
        configuration = new Configuration().configure();
        sessionFactory = configuration.buildSessionFactory();
    }

    //提供方法返回与本地线程绑定的session对象的方法
    public static Session getSessionObject(){
        return sessionFactory.getCurrentSession();  
    }

    //提供方法返回SessionFactory对象
    public static SessionFactory getSessionFactory(){
        return sessionFactory;
    }

    public static void main(String[] args) {

    }

}
  • curd操作
    @Test
    public void testUpdateDemo1(){
        Session session = null;
        Transaction transaction = null;
        try {
            //1.使用SessionFactory创建Session对象
            //理解:类似于jdbc的连接数据库
            session = HibernateUtils.getSessionObject();
            //2.开启事务
            transaction = session.beginTransaction();
            //3.写具体的crud操作
            //让某个用户具有某个角色
            //3-1.根据id查询需要添加角色的用户和需要添加的角色
            User user = session.get(User.class, 1);
            Role role = session.get(Role.class, 2);
            //3-2.给用户对象的set集合添加所需角色对象
            user.getSetRole().add(role);
            //4.提交事务
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //5.回滚事务
            transaction.rollback();
        } finally {
            //6.关闭资源     在使用了与本地线程绑定的session对象之后,就不需要手动关闭session了
            session.close();
        }
    }
相关标签: hibernate 数据库

上一篇: 数据库基础-视图

下一篇: 实习day07