开发工具与关键技术:MyEclipse、MyBatis
作者:LJR
撰写时间:2020年 12 月 04 日

在学习Mybatis的时候,可能我们会遇到很多的难点,在做数据库连接的连接池的时候,做一点点的总结。
Mybatis中连接的获取过程分析
当我们需要创建 SqlSession 对象并需要执行 SQL 语句时,这时候 MyBatis 才会去调用 dataSource 对象 来创建java.sql.Connection对象。
也就是说,java.sql.Connection对象的创建一直延迟到执行SQL语句 的时候。

@Test
public void testSql() throws Exception { InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");  SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); SqlSession sqlSession  = factory.openSession();  List<User> list = sqlSession.selectList("findUserById",41);  System.out.println(list.size());
}

只有当第 4句sqlSession.selectList(“findUserById”),才会触发MyBatis 在底层执行下面这个方 法来创建 java.sql.Connection 对象。
如何证明它的加载过程呢?
我们可以通过断点调试,在 PooledDataSource 中找到如下 popConnection()方法,
如下所示 :

下面是连接获取的源代码:

最后我们可以发现,真正连接打开的时间点,只是在我们执行SQL语句时,才会进行。其实这样做我们也可以 进一步发现,数据库连接是我们最为宝贵的资源,只有在要用到的时候,才去获取并打开连接,当我们用完了就再 立即将数据库连接归还到连接池中。
这样子我们的Mybatis中连接的获取过程就完成了。

MyBatis中连接的获取过程相关推荐

  1. Mybatis中连接池介绍

    连接池:我们在实际开发中都会使用连接池.以为它可以减少我们获取连接所消耗的时间mybatis中的连接池mybatis连接池提供了三种方式的配置,配置位置主配置文件SqlMapConfig.xml中的d ...

  2. MyBatis中使用流式查询避免数据量过大导致OOM

    欢迎关注方志朋的博客,回复"666"获面试宝典 今天mybatis查询数据库中大量的数据,程序抛出: java.lang.OutOfMemoryError: Java heap s ...

  3. MyBatis 中的九种设计模式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://www.crazyant.net ...

  4. mybatis中LIKE模糊查询的几种写法以及注意点(亲测第三种CONCAT()函数的)

    mybatis中对于使用like来进行模糊查询的几种方式: (1)使用${...} 注意:由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错 org.mybatis. ...

  5. 9、mybatis中动态sql的使用

    对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来.首先大家需要了解mybatis是什么.用mybatis来做什么.为什么要用mybatis.有什么优缺点:当知道了为什么的时候 ...

  6. 6、mybatis中的sql映射文件详解(1)

    对于初学者,如果进行mybatis的学习呢?我总结了几点,会慢慢的更新出来.首先大家需要了解mybatis是什么.用mybatis来做什么.为什么要用mybatis.有什么优缺点:当知道了为什么的时候 ...

  7. Mybatis中强大的功能元素:resultMap

    转载自  Mybatis中强大的功能元素:resultMap 前言 在Mybatis中,有一个强大的功能元素resultMap.当我们希望将JDBC ResultSets中的数据,转化为合理的Java ...

  8. Spring整合mybatis中的sqlSession是如何做到线程隔离的?

    转载自  Spring整合mybatis中的sqlSession是如何做到线程隔离的? 项目中常常使用mybatis配合spring进行数据库操作,但是我们知道,数据的操作是要求做到线程安全的,而且按 ...

  9. mybatis中LIKE模糊查询的几种写法以及注意点

    From: https://blog.csdn.net/zhenwei1994/article/details/81876278 mybatis中对于使用like来进行模糊查询的几种方式: (1)使用 ...

最新文章

  1. python把中文转英文_Python 3.0_文本清洗之中文特殊符号转英文特殊符号及全角字符转半角字符...
  2. Dvbbs8严重漏洞
  3. cmake学习(五) 系统默认变量和内置变量
  4. 3.3 计算神经网络的输出
  5. ASP.NET2.0的快速入门站点
  6. linux下c++版本线程池的实现
  7. PHP用户名和密码登陆验证代码
  8. st计算机编程语言,初学ST语言,有了这篇ST编程语言的相关知识就容易多了~
  9. win7系统如何开启打印服务器配置,win7系统怎么添加打印服务器端口
  10. 如果使用git克隆远程创库,pull提示Can‘t update master has no tracked branch
  11. 论win10专业版,企业版和教育版之间自由切换的方法和密钥
  12. FPGA 视频处理 FIFO 的典型应用
  13. android读取剪切板的方法,Android获取粘贴板内容
  14. java+js+html 实现webSocket广播及私聊
  15. 淡入淡出文字垂直滚动
  16. 设计word模板添加书签
  17. 频率计的交流耦合和直流耦合的区别_示波器DC/AC耦合设置及影响
  18. 在做竞品分析时遇到的一些坑
  19. 机器学习——Google 快速入门课程(综合版)
  20. 10 个实用技巧,让 Finder(访达)带你飞

热门文章

  1. 个推 tp6 --APP消息推送(Cid单推)
  2. 如何在沟通当中避免生气,减少负面情绪?
  3. 北京公户摩托验车经验
  4. Functional Mechanism: Regression Analysis under Differential Privacy
  5. php面试题汇总(必会)
  6. 学习Git使用的相关笔记
  7. java语言使用的字符码集是_Java应用开发中的字符集与字符编码
  8. hdu2546-饭卡???
  9. 批量删除PDF中的高亮和划线
  10. Capto for Mac屏幕录制编辑工具