SqlMapConfig.xml主要负责配置数据库的连接信息,以及加载mapper.xml。
在配置数据库连接信息时,可采用Properties配置文件的方式进行相关信息的配置并加载,
这样只需要在SqlMapConfig.xml中加载properties文件包含的属性值,在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。
同时也方便对参数进行统一管理,其它xml亦可引用该properties配置文件。
相关代码如下:
db.properties文件:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=passwd
SqlMapConfig.xml配置文件:
注意: MyBatis 将按照下面的顺序来加载属性:
1、properties元素体内定义的属性首先被读取。
2、其次读取properties 元素中resource或url加载的属性,其会覆盖已读取的同名属性3、最后读取parameterType传递的属性,其亦会覆盖已经读取的同名属性
建议:
不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。
在properties文件中定义属性名要有一定的特殊性。
mybatis框架在运行时可以调整一些运行参数。
比如:开启二级缓存、开启延迟加载,全局参数将会影响mybatis的运行行为。
具体设置信息如下所示:表格下载:下载
在Mybatis中,我们可以为数据类型指定一些别名,继而简化我们的开发,同时,也可以为协同开发做出一定的规则,减少了代码的错误量以及整合速度。
Mybatis本身支持了一些别名供我们使用,如下所示:
别名 |
映射的类型 |
_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 |
除了Mybatis自身支持的一些数据类型别名外,我们还可以自定义一些简单易用的别名供我们使用。
自定义别名,则需要在SqlMapConfig.xml配置文件中进行相关的配置,如下所示:
<-- 单个别名定义 -->
如上则表示将com.sw.po包下所有的po类名称定义为其类名。
例如:com.sw.po下有User类,则其别名即为User或者user.....
注:在这里,user并不区分大小写,大小写均可进行配置。
类型处理器用于java类型与jdbc类型的映射,如下所示:
在Mybatis中,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-任何兼容的字符串类型,作为代码存储(而不是索引)。 |
mappers映射器主要用于加载相关的mapper.xml配置文件。
但是我们知道,在实际开发时,有的时候,我们会将Mapper.xml配置文件放置于服务器某个磁盘中,
故而,我们可以使用