
在使用spring框架的时候如果在xml配置里面把autocommit关掉用jdbcTemplate.update就不能提交数据了?
如题,我再在使用spring框架的时候,在xml配置里面写<propertyname="defaultAutoCommit"value="false"/>然后用jdbcT...
如题,我再在使用spring框架的时候,在xml配置里面写<property name="defaultAutoCommit" value="false" />然后用jdbcTemplate.update(psc),就不能提交数据了?难道还要我手动加commit?那么怎么进行事务管理啊?
那么如果我用transaction注释来做事务管理需要关掉autocommit吗? 展开
那么如果我用transaction注释来做事务管理需要关掉autocommit吗? 展开
展开全部
defaultAutoCommit 的意思是你如果没有使用事物来控制点的话,他会自动提交(一条语句执行就会提交)
比如:在一个service的save方法中
public void save(){
dao.save1(); 执行完save1后会自动提交。如果你使用了事物控制,那么会在这个方法都执行完后提交的
dao.save2();
}
换句话就是说就算你不配置事物,数据也会保存到数据库中的,应为spring默认的是defaultAutoCommit自动提交
理解不?
比如:在一个service的save方法中
public void save(){
dao.save1(); 执行完save1后会自动提交。如果你使用了事物控制,那么会在这个方法都执行完后提交的
dao.save2();
}
换句话就是说就算你不配置事物,数据也会保存到数据库中的,应为spring默认的是defaultAutoCommit自动提交
理解不?
追问
大概理解了,也就是说如果配置了事务的话,就跟defaultAutoCommit 的设置无关了对吗?
顺便再教教我吧,比如说在service里面两个save方法,如果是
@Transaction
public void save1(){...}
@Transaction
public void save2(){...}
然后一个方法当中同时调用了save1和save2这是两个事务还是一个啊?
追答
肯定是两个事务了。
事务的控制一般都是在service的,service表示的就是业务逻辑的操作!
展开全部
这样可能不太规范 可以后期还是会出现问题的
不管你是用标签,还是用注释 commit只能放在DAO层里面就可以了 (sql语句不出DAO)
如果说你要用标签的话你可以把commint 放到标签类中 标签调用 或者是 直接把commit 直接写在增删改查类中的方法中insert update delete select 之后 jdbcTemplate.conmit (调用那边的commit方法)
不管你是用标签,还是用注释 commit只能放在DAO层里面就可以了 (sql语句不出DAO)
如果说你要用标签的话你可以把commint 放到标签类中 标签调用 或者是 直接把commit 直接写在增删改查类中的方法中insert update delete select 之后 jdbcTemplate.conmit (调用那边的commit方法)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询