Mybatis的Transaction、session、Connection,Oracle的Session的关系

这几天翻了一下Mybatis的代码,翻之前在网上找了一下,也没找到标题的合适的答案,在这里做个总结吧。

Mybatis的Connection对应的是Oracle的session

mybatis的一个connection对应一个数据库的长链接,就是oracle的session,即通过show v$session查看的链接。

Mybatis的session是申请一个connection,基于connection的一次会话操作(或是占用)

翻看代码,首先SqlSession是mybatis的类,不是jdbc的类,SqlSession的操作基本都是基于java.sql.Connection的API的操作。openSession和closeSession,可以理解是一个打标的操作并开启或关闭ResultSet等,在连接池中获取链接和归还链接。
SqlSession:
jdbc没有session
SqlSession.close

myBatis的session.close
关闭ResultSet:
调用Jdbc关闭ResultSet

Mybatis的一个Session上可以多个Transaction,也可以没有Transaction,一个Transaction不能跨Session。

事务是基于数据库的事务实现,要符合ACID
Transaction从Connection获取到的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值