我想在一个方法中,在方法未结算前,提交我更新的数据到数据库。这个如何做到呢?
比如下面
public void method(){
updatesomthing();
doOtherSomthing();
}
我希望updatesomthing方法执行完,就提交事务而不是等到method方法执行完才提交事务,请问怎么做?请输入代码
我想在一个方法中,在方法未结算前,提交我更新的数据到数据库。这个如何做到呢?
比如下面
public void method(){
updatesomthing();
doOtherSomthing();
}
我希望updatesomthing方法执行完,就提交事务而不是等到method方法执行完才提交事务,请问怎么做?请输入代码
先跟题主确定一下,你的目的是提交事务,还是让 updateSomething() 的 Sql 先执行掉。因为我有过类似的需求,所以会这样推测。
提交事务
如果是提交事务,那需要先得到事务的控制权,手动控制事务。
spring 事务的话可以通过注入或 getBean 的方式拿到 transactionManager。就是 xml 中类似如下配置的 bean:
代码可以类似这样:
先执行部分SQL
如果是先执行部分 SQL 不提交的倒没必要这么麻烦。一种简便的方法就是随便执行条 select 语句就可以了:)。这样虽然事务没提交但是之前的SQL是会先执行的。
这个SQL可以是这样:
用 Mybatis 接口的话可以是这样:
当然了,这种算黑科技 ^ ^ 。如果有更优雅简便的方法请与我分享。