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=passwdSqlMapConfig.xml配置文件: <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理--> <transactionManager type="JDBC" /> <!-- 数据库连接池--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments>注意: 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配置文件中进行相关的配置,如下所示:
<!-- 自定义别名 --> <typeAliases> <!-- 针对单个别名的定义 type:类型的路径 alias:别名 --> <-- 单个别名定义 --> <typeAlias type="com.sw.po.User" alias="user"/> <!-- 批量别名定义指定包名,mybatis自动扫描包中的po类,自动定义别名,别名即为类名(大小写均可) --> <package name="com.sw.po"/> </typeAliases> 其中,我们可以进行单个别名定义,如下: <typeAlias type="com.sw.po.User" alias="user"/> 表示将com.sw.User定义为user,在使用时,我们只需要填写user即可。 同时,亦可进行批量别名定义,如下: <package name="com.sw.po"/>如上则表示将com.sw.po包下所有的po类名称定义为其类名。例如:com.sw.po下有User类,则其别名即为User或者user..... 注:在这里,user并不区分大小写,大小写均可进行配置。
类型处理器用于java类型与jdbc类型的映射,如下所示:
<select id="findUserById" parameterType="int" resultType="user"> select * from user where id = #{id} </select> parameterType则表示输入类型,即与数据库表字段的相关映射。在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配置文件。
<!-- 加载映射文件 --> <mappers> <!-- User.xml --> <mapper resource="sqlmap/User.xml"/> <!-- 1、UserMapper.xml --> <!-- <mapper resource="com.sw.mapper.UserMapper.xml"/> --> <!--2、通过Mapper接口加载映射文件 规范:需要将mapper接口类名与mapper.xml映射文件名保持一致,且在一个目录中 前提:使用的是mapper代理的方式 --> <!-- <mapper class="com.sw.mapper.UserMapper"/> --> <!-- 3、批量加载(多个mapper) 指定mapper接口的包名,mybatis自动扫描包下的mapper接口进行加载 --> <package name="com.sw.mapper"/> </mappers> 如上所示,一般的我们可以使用以上三种方法进行加载mapper.xml配置文件的工作。但是我们知道,在实际开发时,有的时候,我们会将Mapper.xml配置文件放置于服务器某个磁盘中,
故而,我们可以使用<mapper url=" "/>的方式进行加载,其url表示mapper.xml的路径,例如:
<mapper url="file:///D:\workspace\mybatis-1\config\sqlmap\User.xml"/> 到这里,关于SqlMapConfig.xml的基本常用配置就讲解完了,在之后有增加的地方会接着修改,有错误的地方,请指教。