mybatis执行dao层操作数据库的流程(使用Druid连接池)

( 1)获取到dao层的动态代理对象org.apache.ibatis.binding.MapperProxy@63f53387,并执行其invoke方法,该方法是入口
( 2)执行org.apache.ibatis.binding.MapperMethod.execute()方法,根据sql语句执行select/update/delete之一
( 3)执行org.mybatis.spring.SqlSessionTemplate.insert()方法
( 4)执行org.mybatis.spring.SqlSessionTemplate中内部类SqlSessionInterceptor的invoke方法, 该invoke方法首先获取session(即连接),执行sql返回结果,关闭session(即连接)
( 5)执行org.apache.ibatis.session.defaults.DefaultSqlSession.insert()方法
( 6)执行org.apache.ibatis.executor.BaseExecutor.getConnection()方法获取connection
( 7)执行com.alibaba.druid.pool.DruidDataSource.getConnection()方法从Druid连接池获取一个connection
( 8)执行com.alibaba.druid.pool.DruidDataSource.takeLast()方法从connection[]数组中取得最后一个连接,并将该数组的最后一个元素置为null
( 9)org.mybatis.spring.SqlSessionTemplate中内部类SqlSessionInterceptor的invoke方法执行完sql拿到返回结果
(10)执行org.mybatis.spring.SqlSessionUtils.closeSqlSession()方法关闭session
(11)执行com.alibaba.druid.pool.DruidPooledConnection.close()方法将connection放回connection[]数组中
(12)执行com.alibaba.druid.pool.DruidDataSource.recycle()方法调整数据库连接池相关参数
(13)dao方法执行结束

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值