请问:hibernate里的session如何正确关闭

山城忙碌人 2010-09-26 09:42:47
rt:
public class Test{
Configuration con = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf = con.buildSessionFactory();
Transaction tx = null;

public void test(){
String sql = "";
String sql1 = "";
String sql2 = "";
String sql3 = "";

Session session = sf.openSession();
tx = session.beginTransaction();
tx.begin();
try {
session.createQuery(sql).executeUpdate();
session.createQuery(sql1).executeUpdate();
session.createQuery(sql3).executeUpdate();
session.createQuery(sql4).executeUpdate();
tx.commit();
}
catch (Exception e){
tx.rollback();
}
finally {
if (session != null) {
session.close();
}
}
}

}
请问如何正确关闭这里的session.应该关几次。是我执行完第一个修改后就需要关闭一次吗,这样关闭有问题吗?如果有,请问出在哪。正确的应该怎么操作。谢谢。
...全文
340 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
caimi1989 2010-09-26
  • 打赏
  • 举报
回复
得到修改后的返回值判断不就可以了吗???
山城忙碌人 2010-09-26
  • 打赏
  • 举报
回复
yangfeihu
我有一个问题啊。我是修改三次记录。我想通过修改后的返回值来决定事务提交还是回滚。应该怎么做。我看session.createQuery(sql3).executeUpdate();这样我应该怎么做呢。。
yangfeihu 2010-09-26
  • 打赏
  • 举报
回复
没有问题, 这三个操作都在一个事物当中. 要么都成功,要么都失败
如果想每个操作的都开一个事物,那么你这种写法就有问题
yangfeihu 2010-09-26
  • 打赏
  • 举报
回复
通过修改后的返回值来决定事务提交还是回滚? 项目中没人会这么做的。 你考虑方向错了。 你到底想要一个什么样的效果啊?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧