hibernate 处理数据执行效率问题.

guoqiangone 2008-01-12 04:07:04
我的hibernate为什么在对数据库进行增删查改时,速度比较慢.我随便找一段代码给你们看看.
这是我修改密码的代码
public boolean change_password(UserInfo userinfo){
try{
hql="update UserInfo set userPwd=? where userId=?";
query=this.getSession().createQuery(hql);
query.setString(0,userinfo.getUserPwd());
query.setInteger(1, userinfo.getUserId());
int i=query.executeUpdate();
if(i==0){
return false;
}
// this.getSession().update(userinfo);
}catch(Exception ex){
ex.printStackTrace();
System.out.println("Dao出错");
return false;
}
return true;
}

问一下,为什么this.getSession().update(userinfo);这条不能执行修改呢.也不报错的.
...全文
164 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgqbcht 2008-01-19
  • 打赏
  • 举报
回复
执行完update方法需要再执行session.flush()方法
guoqiangone 2008-01-19
  • 打赏
  • 举报
回复
自动提交?好像没有吧,在那里可以看出是否设置了自动提交的呢?
kellyme 2008-01-18
  • 打赏
  • 举报
回复
// this.getSession().update(userinfo);
这句不是注释掉了吗。。。。
woshizsm 2008-01-18
  • 打赏
  • 举报
回复
有没有设置自动提交啊?没有设置需要手动提交.
guoqiangone 2008-01-18
  • 打赏
  • 举报
回复
yztommyhc

hql="update UserInfo set userPwd=? where userId=?";
这句是更新表中所有的记录,如果你表中的记录多的话,速度就该慢.


----------------------------------------------
可是我的数据只有5条啊,我是不在每一个方法之后this.getSession().colse();掉呢
guoqiangone 2008-01-18
  • 打赏
  • 举报
回复
你如果是用eclipse的话,看下是否选择了自动编译!
---------------------------------------------
什么意思,我怎么有点听不懂.我有编译.手动编译的.


this.getSession().update(userinfo);
这句话的执行应该是数据库中有一个和你参数userinfo的id 一样的记录 .你的数据库中有么?
-------------------------------------------
有的,在页面上已经显示出来了,
yztommyhc 2008-01-18
  • 打赏
  • 举报
回复
hql="update UserInfo set userPwd=? where userId=?";
这句是更新表中所有的记录,如果你表中的记录多的话,速度就该慢.
yztommyhc 2008-01-18
  • 打赏
  • 举报
回复
this.getSession().update(userinfo);
这句话的执行应该是数据库中有一个和你参数userinfo的id 一样的记录 .你的数据库中有么?
yayyeah 2008-01-18
  • 打赏
  • 举报
回复
你如果是用eclipse的话,看下是否选择了自动编译!
guoqiangone 2008-01-18
  • 打赏
  • 举报
回复
mpan03

要看表中有没有这条记录~~
没有就不会执行了

--------------------------------
就是表中没有数据,我才知道没有执行的


*********************************************

kellyme
// this.getSession().update(userinfo);
这句不是注释掉了吗。。。。

---------------------------------------------------------------
就是 this.getSession().update(userinfo); 这个方法没有执行我才注释掉的,上面的语句是也更新的.
liangjun19801210 2008-01-17
  • 打赏
  • 举报
回复
看看<<深入浅出hibernate>>288页
mpan03 2008-01-17
  • 打赏
  • 举报
回复
要看表中有没有这条记录~~
没有就不会执行了
guoqiangone 2008-01-17
  • 打赏
  • 举报
回复
真的可以的.不骗你的.
wxb168 2008-01-17
  • 打赏
  • 举报
回复
楼上的。。真的行么?
guoqiangone 2008-01-15
  • 打赏
  • 举报
回复
save()时我也没有commit(),为什么能执行呢。
guoqiangone 2008-01-14
  • 打赏
  • 举报
回复
自己顶一下。
liangjun19801210 2008-01-14
  • 打赏
  • 举报
回复
update 不会执行
需要commit()

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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