欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MyBatis之SqlMapConfig.xml

程序员文章站 2022-07-09 19:51:23
...

MyBatis之SqlMapConfig.xml

1.介绍

  • SqlMapConfig.xml是mybatis的全局配置文件,mybatis通过它创建SqlSessionFactory

  • 配置内容:

    properties(属性)
    settings(全局配置参数)
    typeAliases(类型别名)
    typeHandlers(类型处理器)
    plugins(插件)
    environments(环境集合属性对象)
        environment(环境子属性对象)
            transactionManager(事务管理)
            dataSource(数据源)
    mappers(映射器)
    

2.properties(属性)

SqlMapConfig.xml可以引用java属性文件中的配置信息如下:
在classpath下定义db.properties文件,

MyBatis之SqlMapConfig.xml
SqlMapConfig.xml引用如下:
MyBatis之SqlMapConfig.xml

注意: MyBatis 将按照下面的顺序来加载属性:

  • 在 properties 元素体内定义的属性首先被读取。
  • 然后会读取properties 元素中resource或 url 加载的属性,它会覆
    盖已读取的同名属性。
  • 最后读取parameterType传递的属性,它会覆盖已读取的同名属性。
    因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。

3.settings(配置)

mybatis全局配置参数,全局参数将会影响mybatis的运行行为
MyBatis之SqlMapConfig.xml
MyBatis之SqlMapConfig.xml
MyBatis之SqlMapConfig.xml

4.typeAliases(类型别名)

4.1mybatis支持别名:

别名 映射的类型
_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

4.2.自定义别名
在SqlMapConfig.xml中配置:
MyBatis之SqlMapConfig.xml
使用别名
MyBatis之SqlMapConfig.xml

5.typeHandlers(类处理器)

类型处理器用于java类型和jdbc类型映射,如下:

<select id="findUserById" parameterType="int" resultType="user">
        select * from user where id = #{id}
</select>

mybatis自带的类型处理器基本上满足日常需求,不需要单独定义。
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-任何兼容的字符串类型,作为代码存储(而不是索引)。

6.mappers(映射器)

Mapper配置的几种方法:

MyBatis之SqlMapConfig.xml