SSH之hibernate(二)

来源:互联网 发布:c语言ide 编辑:程序博客网 时间:2024/05/18 01:42

hibernate核心API

Configuration

Configuration cfg=new Configuration();
cfg.configare;

到src下找到名称为hibernate.cfg.xml配置文件,找到后创建对象,把配置文件放到对象中(加载核心配置文件)

SessionFactory
SessionFactory sessionFactory=cfg.bulidSessionFactory();
1. 使用Configuration对象创建sessionFactory对象,在创建此对象时,会根据核心配置文件中的信息创建数据库,根据加载的映射文件创建对应的表
2. 创建sessionFactory对象时十分耗资源,所以在hibernate操作中,建议一个项目只创建一个sessionFactory对象

Session
Session session=sessionFactory.openSession();

  • 用sessionFactoy对象来创建session对象
  • session对象相当于jdbc中的连接对象connection
  • 可调用session对象里的不同方法实现crud操作
    1. 添加方法: save()
    2. 修改方法: update()
    3. 删除方法: delete()
    4. 根据id查询 的方法: get()
  • session对象是单线程对象,即session对象不能共用,只能自己使用

Transaction
- 事务对象
Transaction tx=session.beginTransaction();//开启事务
事务提交和回滚
1. 提交:tx.commit()
2. 回滚: tx.rollback

hibernate完整执行流程

  1. 加载hibernate核心配置文件(在hibernate里封装配置对象)

    Configuration cfg=new Configuration();cfg.configare;
  2. 创建SessionFactory对象

    SessionFactory sessionFactory=cfg.bulidSessionFactory();

  3. 使用SessionFactory对象创建session对象

    • 未绑定session对象:Session session=sessionFactory.openSession();
    • 绑定本地线程session对象: Session session=sessionFactory.getCurrentSession();
  4. 开启事务

    Transaction tx=session.beginTransaction();//开启事务

  5. 写具体的crud操作

     User user=new User(); user.setId(10); user.setPassword("778"); user.setUserName("马云"); session.save(user);//保存
  6. 提交事务

    Transaction tx=session.beginTransaction();//开启事务
    tx.commit();

  7. 关闭资源

    tx.commit();session.close();SessionFactory.close();