获取 Hibernate 中的 Session 可以通过两种方式:getCurrentSession() 和 openSession()。
getCurrentSession() 方法
getCurrentSession() 方法获取的 Session 是与当前线程绑定的,使用完后会自动关闭。
示例代码如下:
Session session = sessionFactory.getCurrentSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
// 这里执行数据库操作
tx.commit();
}catch(Exception ex){
if(tx != null){
tx.rollback();
}
ex.printStackTrace();
}
openSession() 方法
openSession() 方法获取的 Session 是新建的,使用完后需要手动关闭。
示例代码如下:
Session session = sessionFactory.openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
// 这里执行数据库操作
tx.commit();
}catch(Exception ex){
if(tx != null){
tx.rollback();
}
ex.printStackTrace();
}finally{
session.close();
}
需要注意的是,使用 openSession() 方法时,需要手动关闭 Session,否则会产生内存泄露的问题。
无论是使用 getCurrentSession() 方法还是 openSession() 方法,在执行完数据库操作后都需要提交/回滚事务,以保证数据的一致性和完整性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Hibernate中获取Session的两种方式代码示例 - Python技术站