mybatis核心配置文件详解

mybatis核心配置信息必须严格按照格式标准进行配置

配置名称 配置含义 配置简介
configuration 包裹所有配置文件 整个配置文件的顶级标签
properties 属性 该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件均可引用此配置中的属性
setting 全局配置参数 用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使用延迟加载,是否使用错误机制等。并且可以设置最大并发请求数量、最大并发事务数量,以及是否启动命名空间等
typeAliases 类型别名 用来设置一些别名来代替Java的长类型声明(如java.lang.int变成int),减少配置编码的冗余
typeHandlers 类型处理器 将SQL中返回的数据库类型转换成相应Java类型的处理器配置
objectFactory 对象工厂 实例化目标类的工厂类配置
plugins 插件 可以通过插件修改Mybatis的核心行为,例如对语句执行的某一点进行拦截调用
environments 环境集合属性变量 数据库环境信息的集合。在一个配置文件中,可以有多种数据库环境集合,这样可以使Mybatis将SQL同时映射至多个数据库
environment 环境子属性对象 数据库环境配置的详细配置
transactionManager 事务管理 指定Mybatis的事务管理器
dataSource 数据源 使用其中的type指定数据源的连接类型,在标签对中可以使用property属性指定数据库连接池的其他信息
mappers 映射器 配置SQL映射文件的位置,告知MyBatis去哪里加载SQL映射配置


  
  	
  	
  		
  		
  		
  	
  	
  	
  		
  		
  		
  		
  	
  	
  	
  		
  		
  	
  	
  	
  		
  		
  	
  	
  	
  		
  		
  	
  	
  	
  		
  			
  		
  	
  	
  	
  	
  		
  			
  			
  			
  			
  				
  				
  				
  				
  			
  		
  	
  	
  	
  	
  		
  		
  	
  

各个配置参数的详解:
properties参数用来引入一个外部属性文件:
引入一个config.properties文件



	
	
	

config.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///ssm
username=root
password=123

properties标签引入它避免了数据库信息的“硬编码”,当需要连接其他数据库的时候,只需要连接其他数据库时,只需要更改数据库的配置文件即可。
当propertieszhong you property子标签时,并且子标签配置了引的属性文件的属性值,这时取的就是property子标签中的value值。
在properties变迁中引入的配置文件信息以及property子标签中的配置的信息,在其他标签中可以使用" " 占 位 符 的 方 式 来 获 取 , 在 " {}"占位符的方式来获取,在" ""{}"中填写引入的配置文件中参数的name或者property子标签的name。
例如:


	
	
	
	

setting配置影响Mybatis框架在运行时的一些行为,在这就不详细介绍了,只需大致了解setting中包含了哪些设置,然后在需要用的时候,查看setting的文档即可。
setting配置常用来实现缓存、延迟加载和分页设置。
Setting配置的样例:
https://blog.csdn.net/qq_37745636/article/details/98953127

typeAliases配置
在MyBatis的SQL映射配置文件中,常使用parameterType、resultType之类的参数设置SQL语句的输入/输出参数,一般参数都是一个java类型的数据,有基本数据类型或引用数据类型,单数一般都要声明该类型的全路径名称,例如“java.lang.String”、“com.mybatis.domain.User”。
通过在typeAliases配置中声明该类的全路径名称,然后给它一个别名,在SQL映射配置文件中指定输入/输出参数类型时使用别名。


	
	

MyBatis还提供了批量定义别名的方法,指定包名即可,程序会为该包下的所有包装类加上别名。定义别名的规范就是对应包装类的类名首字母变成小写。


	

还可以通过注解的方式来实现

@Alias("user")
public class User {
}

Mybatis已经为Java的常见类型默认指定了别名,可以直接使用。

别名 映射的类型
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string java.lang.String
byte java.lang.Byte
long java.lang.Long
short java.lang.Short
int java.lang.Integer
integer java.lang.Integer
double java.lang.Double
boolean java.lang.Boolean
date java.util.Date
decimal java.math.BigDecimal
bigdecimal java.math.BigDecimal
object java.lang.Object
map java.util.Map
hashmap java.util.HashMap
list java.util.List
arraylist java.util.ArrayList
collection java.util.Collection
iterator java.util.Iterator

可以从上面发现规律: 基本数据类型的别名是“_”加上基本数据类型的名称,引用数据类型的别名是数据类型的名称首字母小写。
建议:在实体类中定义属性时尽量使用引用数据类型。
在返回值是个List集合的时候,ResultType中还是写返回的list集合中对象的别名。

environments配置环境





	
	
	
	
		
		
		
		
	


environments中的default属性配置默认的环境,而environment中的id则是这个环境的id。
数据管理器(transactionManager)有两种类型:分别是JDBC和MANAGED。配置为JDBC,相当于直接使用JDBC的提交和回滚设置。配置为MANAGED,则不提交和回滚连接,而是有容器来管理事务的生命周期。
关于数据源(dataSource),在mybatis中有三种内建的数据源类型:分别是“UNPOOLED”、“POOLED”,与“JNDI”。其中UNPLOOED设置每次请求时打开和关闭连接,而POOLED可以设置一个管理数据库连接的资源池,用来合理控制数据库的连接与关闭次数,利用“池”的概念将JDBC连接对象组织起来。而JNDI则配置连接外部数据源的信息。

mappers配置分析
mappers标签下有多个mapper标签,每一个mapper标签中配置的都是一个独立的Mapper映射配置文件的路径。有以下几种配置方式:
第一种,使用相对路径进行配置:


	

第二种,使用绝对路径进行配置:


	

第三种,使用接口信息进行配置:


	

第四种,使用接口所在包进行配置:


	

你可能感兴趣的:(mybatis框架)