java hibernate修改语句执行没有报错,但数据库也没有改变是怎么回事

 我来答
百度网友211658b42
推荐于2016-06-15 · TA获得超过3383个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:598万
展开全部
  1. 检查程序中配置的数据源,简单说就是程序有没有连错数据库

  2. 检查事务相关配置或编码,是不是没有提交事务

追问
1,绝对连接数据库了,我修改的数据就是hibernate  query.list()从数据库得到的
2,修改也要提交事务吗?这段我是在网上看的没有提交事务啊。
3,query,excuteUpdate()和session.update()那个更好,他们有什么区别,
4 ,可不可以给个关于我上边修改的详细代码
追答

对于数据更改(包括插入、修改、删除)的操作都要提交事务才能生效, 只不过用JDBC的话默认是自动提交,也就是每条语句执行完就自动提交事务了。JDBC中可以通过Connection对象的setAutoCommit(false)方法来关闭自动提交,然后用Connection对象的commit方法手工提交事务。

Hibernate的事务管理你看看你有没有配置交给JDBC或者JPA。

query.executeUpdate方法可以按照你写的sql语句进来更新,例如:

Query query = session.createQuery(“update Teacher t set t.name = ‘zhangsan’ where id = 3″);
query.executeUpdate();

而session.update(Object entity)方法是更新一个受管实体bean的所有字段,不是按SQL更新。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
uegulangsd
2017-08-10 · TA获得超过4148个赞
知道小有建树答主
回答量:2739
采纳率:47%
帮助的人:236万
展开全部
可以直接在程序中使用lookup(“jdbc/Test”),但这样程序的移植以后,如果JNDI命名冲突,将需要直接更改代码;
上面的第一个方法可以通过直接更改相应的资源配置xml来解决命名冲突的问题.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式