1===>Hibernate常用的aip有Configuration,SessionFactory,Transaction,Session
Configuration主要用于加载配置文件,使用
Configuration conf=new Configuration().configure("hibernate.cfg.xml")
来获取一个Configuration对象的实例,加载配置文件在应用启动时便应该对其进行初始化,而且整个应用的生命周期,仅需加载一次
2===>使用Configuration类的buildSessionFactory()方法可以用来获取一个Sessionfactory()对象,在整个应用中,作为Session的工厂仅存在一份就就可以
SessionFactory sf=conf.buildSessionFactory()
3===>SessionFactory用于创建会话,
Session session = sf.currentSession();
SessionFactory接口中提供有openSession()和getCurrentSession()两个方法用于获取与数据库交互的会话,
使用openSession()方法获取到的session,hibernate不会对其进行管理,用完后必须手动进行关闭,而且在多线程中不安全,不推荐使用
使用getCurrentSession()方法获取到的session,hibernate会对其进行管理,需要我们在配置文件中进行如下配置
<property name="current_session_context_class">thread</property>
使得到的session实例与线程进行绑定,在事务结束后,会自动关闭,不需要我们进行手动关闭,而且比较安全,不会重复产生session
session用于与数据库进行交互应该用于就丢,
4===>
使用Transaction tx=session.beginTransaction();来获取对事务Transaction接口的对象,用于对事务的管理
Session
对象的保存
Session中提供有数据库的增删改查方法
session.save()方法用于对数据的保存
按主键进行查询
Session中提供有两种方法
session.get(Class clazz,Serializable id) 根据参数中的id去查询数据库,如果没有结果返回null
session.load(Class clazz,Serializable id)根据参数中的id去查询数据库,如果没有结果会报出异常org.hibernate.ObjectNotFoundException
对象的更新