Mybatis3基础-工作原理(不整合mybatis-spring)

本文主要是介绍Mybatis3基础-工作原理(不整合mybatis-spring),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

0.主要核心类

(1)SqlSessionFactory接口  用于生产SqlSession(内部使用DefaultSqlSession 创建SqlSession)

SqlSessionFactory  的默认具体实现类:DefaultSqlSessionFactory 

SqlSessionFactoryBuilder 用于创建SqlSessionFactory,内部实际是使用DefaultSqlSessionFactory创建

(1-1)SqlSessionManager类实现了SqlSessionFactory和SqlSession 即是工厂又是SqlSession,具体情况后续分析。

(2)SqlSession接口 用于执行命令、获取映射、管理事务

SqlSession 默认具体实现类:DefaultSqlSession 用于创建SqlSession

(3)BaseBuilder抽象类

具体实现类:XMLConfigBuilder,用于构建配置文件

      XMLMapperBuilder,用于构建映射接口

      XMLStatementBuilder,用于构建语句

      SqlSourceBuilder

Configuration核心类,很多数据都在这里

使用以上类基本就可以把Mybatis构建起来,能满足基本使用需求,一般集成到spring,将实例的生命周期交给spring-IOC管理,将事务交给spring-aop管理,将数据源交给连接池等。后续分析Mybatis-spring,相对简单,涉及的类只有几个。

1.配置文件mybatis-config.xml,具体内容参考官网(https://mybatis.net.cn/configuration.html)

核心配置,常用的元素:setting,设置会影响mybatis的行为,比如说缓存、字段映射。

2.配置加载

mybatis的配置有默认行为,就是说手动不增加配置文件或者不使用Configuration进行设置的时候,是没有问题的。

配置有两种方式(1)配置文件(最终都会被保存到Configuration对象中)(2)使用Configuration类。

(1)使用XMLConfigBuilder加载配置文件

支持以Reader、InputStream、XPathParser的方式将配置文件传给构造方法,构造XMLConfigBuilder和Configuration对象,调用parse方法(内部实际调用parseConfiguration方法)进行设置相关配置,最后返回Configuration对象。

 

 

 

(2)使用Configuration配置

直接创建Configuration对象,将需要修改的配置set到对应字段中。

 

 

 

 

 

 以上部分是配置的初始化。

3.获取SqlSession,有三种方式

(1)创建DefaultSqlSession对象

它是非线程安全的类,类注释上有相关说明,只有两个构造方法,接收三个参数:配置对象、执行器、是否自动提交。

 

 

 

(2)使用SqlSessionFactory

SqlSessionFactory创建SqlSession有两种方法,第一通过默认具体实现类DefaultSqlSessionFactory,它的构造器需要使用到Configuration对象;

第二个是通过SqlSessionFactoryBuilder类构建SqlSessionFactory(内部创建的是DefaultSqlSessionFactory),这种方式比较灵活,构建SqlSessionFactory可以使用配置文件或者Configuration对象。

 

 

 

 

(3)使用SqlSessionManger类,它即是工厂又是会话,这种方式有一定的好处,扩展性、灵活性更好。

 

 

 

 4.使用SqlSession对象

(1)使用Mapper执行相关语句

通过 T getMapper(Class type)获取映射接口,使用映射接口调用方法执行语句(映射接口和映射文件有映射关系),好处是类型安全,调用更明确,不需要知道具体的映射文件以及映射语句。

(2)直接使用封装的方法执行语句

调用更加直接,不需要额外定义映射接口,直接使用映射文件中的语句id进行执行语句,开发量少,因为类型不安全,要求使用人员了解映射语句的返回值、参数等相关内容。

以上就是大概的使用,使用注解方式和更具体的,后续补充。只是做笔记,有什么问题,欢迎大家积极沟通

 

这篇关于Mybatis3基础-工作原理(不整合mybatis-spring)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持

文章版权声明:除非注明,否则均为 谢士广博客 原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,9587人围观)

还没有评论,来说两句吧...

目录[+]