Mybatis用Connection进行数据操纵的注意事项

最近做底层遇到了很多坑,记录如下(有些内容来自网络,标记):

注意:  使用DataSourceUtils.getConnection(dataSource);方式获取连接,而不是dataSource.getConnection()。

dataSource.getConnection()会取到非当前线程的连接导致和当前线程的事务中的连接不相同导致事务不生效的问题。

mybatis插入语句结合connection执行自定义sql插入语句的事务例子:

注意:结合mybatis插入语句事务时,必须保证connection是相同的,通过DataSourceUtils.getConnection(dataSource);来获取当前线程的connection,使用数据源时执行connection后必须要对PreparedStatement和ResultSet进行关闭,不能关闭connection(关闭将会抛出“提交事务时,连接已被关闭”)

 

另外记得设置空闲测试链接,不然连接池不知道数据库已经释放,还会以为保持链接,会报错!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值