Java数据持久层 (17)

vfs:虚拟文件系统,Mybatis用于加载服务器相关资源。具体作用,需要继续查看。其由一个抽象类VFS与两个实现类:JBoss6VFS与DefaultVFS,允许自定义实现(通过自定义VFS实现,解决springBoot的嵌套jar扫描问题)。

SpringBoot默认数据库连接池:早期采用tomcat的连接池,2.0后改为HikariCP(位于spring-starter-jdbc下)。现在使用SpringBoot2+时,mybatis自动连接SpringBoot的默认数据源HikariCP。相关注入,详见:org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration。其通过org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Hikari上的@ConditionalOnMissingBean(DataSource.class)注解,实现优先级队列

工厂方法:DataSourceFactory 接口扮演工厂接口的角色。UnpooledDataSourceFactory和PooledDataSourceFactory 则扮演着具体工厂类的角色。而DataSource(Java)接口扮演产品接口的角色。UnpooledDataSource和HikariDataSource都扮演着具体产品类的角色。

MyBatis的初始化可以有两种方式:

基于XML配置文件:基于XML配置文件的方式是将MyBatis的所有配置信息放在XML文件中,MyBatis通过加载并XML配置文件,将配置文信息组装成内部的Configuration对象

基于Java API:这种方式不使用XML配置文件,需要MyBatis使用者在Java代码中,手动创建Configuration对象,然后将配置参数set 进入Configuration对象中

MyBatis和数据库的交互有两种方式:

使用传统的MyBatis提供的API:如SqlSession.selectOne(String statementId, T parameter);

使用Mapper接口

只有Mapper接口方式,才会经过MapperProxyFactory,MapperProxy,MapperMethod,最终都是调用sqlSession.xxx()

参考资料

JDBC指南(W3C版)

老调重弹:JDBC系列 之 <驱动加载原理全面解析>

老调重弹:JDBC系列 之 <JDBC层次结构和基本构成>

《深入理解mybatis原理》 Mybatis初始化机制详解

面试:你知道MyBatis执行过程之初始化是如何执行的吗?

JDBC层次结构和基本构成

《Mybatis技术内幕》

《深入理解mybatis原理》 MyBatis的架构设计以及实例分析

Mybatis数据源

Mybatis实现@Select等注解动态组合SQL语句

Github_HikariCP

mybatis缓存机制

SpringFramework-Core

Github_Mybatis-3

Github_Mybatis-redis-cache

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfjfp.html