1.Mybatis ,数据库连接池 和 JDBC事务工厂的关系
1)Mybatis和JDBC
-
Mybatis是一个优秀的持久层框架,
底层基于JDBC实现与数据库的交互
。 -
并在
JDBC操作的基础上做了封装和优化
,它借助
灵活的SQL定制
,
参数及结果集的映射方式
,更好的适应了当前互联网技术的发展。 -
Mybatis框架的简单应用架构如图所示
:
2)Druid-数据库连接池
(1)Druid解决什么问题?
-
Druid主要解决的问题就是
传统数据库无法解决的大数据量查询性能的问题
。 -
本质就是
一个分布式支持实时数据分析的数据存储系统
。
(2) Druid适合的场景:
-
查询多修改很少
-
查询以聚合或分组为主
-
快速查询
-
需要支持离线和实时的数据源
-
能够快速的实现查询与数据分析,高可用,高扩展能力。
-
Druid是数据库连接池,功能、性能、扩展性方面都算不错。最大的亮点是
为监控而生的数据库连接池
。
3) 数据库、数据源、数据库连接池、JDBC、JDBC实现是什么关系?
4)数据源连接池和JDBC事务工厂操作的关系
-
建立
数据源连接池
和
JDBC事务工厂
操作,并以
xml配置数据源信息为入口
,在
XMLConfigBuilder
中添加数据源解析和构建操作,在配置类配置中添加
JDBC
运行环境信息。 -
为了在
DefaultSqlSession
中完成对
JDBC执行SQL的操作
。 -
解析parse中的
XML DB
链接配置信息,
完成事务工厂和连接池的注册环境到配置类
。 - 不再打印SQL语句,而是将SQL语句放入DB连接池中执行,完成简单的结果封装。
2. Spring如何整合MyBatis和druid
-
spring
底层读取配置文件
,
基于配置文件创建DataSource
-
创建
sqlSessionFacotryBean
-
通过
sqlSessionFactoryBean
对象创建
SqlSessionFactory
,其实创建的对象是
DefaultSqiSessionFactory
-
把
DruidDataSource注入给sqlSessionFacotryBean
-
外界获取的是
SqlSessionFactory
,但实际创建的是
DeafultSqlSessionFactory
,外界测试类获取的是接口,但是
实际运行时的对象是DeafultSqlSessionFactory
。至少对外界提供SqlSessionFactory对象,才能通过它去opesesssion,通过
sqlSession
去
访问数据库
。
版权声明:本文为weixin_45428910原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。