1. Mybatis的配置文件SqlMapConfig.xml
1.1 主要标签
-
properties(定义属性):用来定义一些固定属性值,以key-value形式存在
-
MyBatis 将按照下面的顺序来加载属性:在 properties 元素体内定义的属性首先被读取;然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性;最后读取parameterType传递的属性,它会覆盖已读取的同名属性。建议不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中,而且在properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX
-
其应用如下:将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。
在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。将数据库连接参数只配置在db.properties中,原因是方便对参数进行统一管理,其它xml可以引用该db.properties。
在sqlMapConfig.xml加载属性文件:
-
子标签<property name="" value=""/>:定义添加属性值
-
-
settings(全局配置参数):mybatis框架在运行时通过该标签可以调整一些运行参数,比如开启二级缓存,全局参数将会影响mybatis的运行行为。
-
参数配置子标签为<setting name="" value=""/>,name的值和value的值如下:
-
示例使用
-
typeAliases(类型别名):用来给指定的类取别名,在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。
- 默认支持的类型与别名:不需要专门配置,直接应用即可
别名
映射的类型
_byte
byte
_long
long
_short
short
_int
int
_integer
int
_double
double
_float
float
_boolean
boolean
string
String
byte
Byte
long
Long
short
Short
int
Integer
integer
Integer
double
Double
float
Float
boolean
Boolean
date
Date
decimal
BigDecimal
bigdecimal
BigDecimal
- 针对自定义的pojo类型需要配置别名:所使用的标签主要如下
- 默认支持的类型与别名:不需要专门配置,直接应用即可
-
typeHandlers(类型处理器):Mybatis通过类型处理器来完成在数据库数据类型和java类型之间的转换,比如从数据库中的varchar转为java中的String类型,通常情况下Mybatis中默认支持的类型处理器可以满足开发需求,所以一般不需要自定义类型处理器
-
类型处理器
Java类型
JDBC类型
BooleanTypeHandler
Boolean,boolean
任何兼容的布尔值
ByteTypeHandler
Byte,byte
任何兼容的数字或字节类型
ShortTypeHandler
Short,short
任何兼容的数字或短整型
IntegerTypeHandler
Integer,int
任何兼容的数字和整型
LongTypeHandler
Long,long
任何兼容的数字或长整型
FloatTypeHandler
Float,float
任何兼容的数字或单精度浮点型
DoubleTypeHandler
Double,double
任何兼容的数字或双精度浮点型
BigDecimalTypeHandler
BigDecimal
任何兼容的数字或十进制小数类型
StringTypeHandler
String
CHAR和VARCHAR类型
ClobTypeHandler
String
CLOB和LONGVARCHAR类型
NStringTypeHandler
String
NVARCHAR和NCHAR类型
NClobTypeHandler
String
NCLOB类型
ByteArrayTypeHandler
byte[]
任何兼容的字节流类型
BlobTypeHandler
byte[]
BLOB和LONGVARBINARY类型
DateTypeHandler
Date(java.util)
TIMESTAMP类型
DateOnlyTypeHandler
Date(java.util)
DATE类型
TimeOnlyTypeHandler
Date(java.util)
TIME类型
SqlTimestampTypeHandler
Timestamp(java.sql)
TIMESTAMP类型
SqlDateTypeHandler
Date(java.sql)
DATE类型
SqlTimeTypeHandler
Time(java.sql)
TIME类型
ObjectTypeHandler
任意
其他或未指定类型
EnumTypeHandler
Enumeration类型
VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。
-
-
objectFactory(对象工厂)
-
plugins(插件):添加一些插件,比如分页插件
-
environments(环境集合属性对象)
- environment(环境子属性对象)
- transactionManager(事务管理)
- dataSource(数据源)
-
mappers(映射器):该标签用于加载映射文件,子标签只有<mapper/>
- 通过子标签<mapper/>中的resource属性指定加载单个映射文件:注意,路径填写是在类路径(也就是classpath),写相对路径
- 通过子标签<mapper/>中的class属性指定加载单个映射文件:注意,该方法只针对Mybatis通过Mapper接口代理开发有效,所以要满足Mapper代理开发的规范,路径填写Mapper接口的全限定路径,并且要将UserMapper接口对应的UserMapper.xml映射文件放在同一个包下,而且xml文件名和mapper接口名相同
- 通过子标签<package/>中的name属性指定加载批量映射文件:注意,该方法只针对Mybatis通过Mapper接口代理开发有效,所以要满足Mapper代理开发的规范,并且要将Mapper接口对应的Mapper.xml映射文件放在同一个包下,而且xml文件名和mapper接口名相同,路径填写所在的包的全限定路径
- 通过子标签<mapper/>中的resource属性指定加载单个映射文件:注意,路径填写是在类路径(也就是classpath),写相对路径