使用方法链编程风格可以改写为
sessionFactory = new Configuration()
buildSessionFactory()
addClass(Customer
class)
buildSessionFactory();
注意
方法链编程风格能使应用程序代码更加简捷在使用这种编程风格时最好把每个调用方法放在不同的行否则在跟蹤程序时无法跳入每个调用方法中
★★★→→Session(orghibernateSession)
() 单线程的短寿命的对象代表了一次会话的过程实际上是把一个JDBC Connection打包 了它可以包含一些持久化对象的缓存看作介于数据连接与事物管理一种中间接口在hibernate的设计者中他们将session看作介于数据连接与事物管理的一种中间接口 或者想象成一个持久对象的缓沖区hibernate能检测到这些持久对象的改变并及时刷新数据库
() 每一个Session实例和一个数据库事务绑定
通常将每一个Session实例和一个数据处理库事务绑定就是说每执行一个数据库事务(操作)都应该先创建一个新的Session实例如果事务执行中出现异常应该撤消事务不论事务执行成功与否最后都应该调用Session的close()方法从而释放Session实例占用的资源
() 如何获得Session对象
首先创建SessionFactory对象应用服务器如果访问多个数据源时则应该产生多个SessionFactory但是仅仅为了服务与某个请求时不要创建一个新的SessionFactory因为创建SessionFactory需要消耗大量的资源然后根据SessionFactory再创建Session对象
例如
Session session=sessionFactory
openSession();
Transaction tx;
try{
tx=sessionbeginTransaction();//开始一个事务
//执行事务
txcommit();
}catch(Exception e){//如果出现异常就撤消事务
if(tx!=null)
txrollback();
throw e;
}
finally//不管事务执行成功与否最后都关闭Session并且放在finally中以提高安全性
sessionclose();
[] [] [] []