Spring整合MyBatis和druid以及JDBC之间的关系

  • Post author:
  • Post category:其他




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

在这里插入图片描述

在这里插入图片描述

  1. spring

    底层读取配置文件



    基于配置文件创建DataSource
  2. 创建

    sqlSessionFacotryBean
  3. 通过

    sqlSessionFactoryBean

    对象创建

    SqlSessionFactory

    ,其实创建的对象是

    DefaultSqiSessionFactory


  4. DruidDataSource注入给sqlSessionFacotryBean
  5. 外界获取的是

    SqlSessionFactory

    ,但实际创建的是

    DeafultSqlSessionFactory

    ,外界测试类获取的是接口,但是

    实际运行时的对象是DeafultSqlSessionFactory

    。至少对外界提供SqlSessionFactory对象,才能通过它去opesesssion,通过

    sqlSession



    访问数据库



版权声明:本文为weixin_45428910原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。