本博客源码下载:戳我一下
Mybatis学习笔记汇总:戳我一下
一、配置文件内容
SqlMapConfig.xml中配置的内容和顺序如下:
properties
(属性)settings
(全局配置参数)typeAliases
(类型别名)typeHandlers
(类型处理器)objectFactory
(对象工厂)plugins
(插件)environments
(环境集合属性对象)environment
(环境子属性对象)transactionManager
(事务管理)dataSource
(数据源)
mappers
(映射器)
二、properties
(属性)
SqlMapConfig.xml
可以引用java属性文件中的配置信息如下:
在classpath
下定义db.properties
文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=mysql
SqlMapConfig.xml
引用如下:
<properties resource="db.properties"/>
<!--在properties这个标签中还可以配置一些属性名和属性值 -->
<!-- <property name="" value=""/> -->
<environments default="development">
<environment id="development">
<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
传递的属性,它会覆盖已读取的同名属性。
因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。
三、settings
(全局参数配置)
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。下表描述了设置中各项的意图、默认值等。
四、typeAliases
(类型别名)
别名 | 类型 |
---|---|
_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 |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
类型别名的使用
<typeAliases>
<!-- 针对单个别名的定义
type:类型的路径
alias:别名
-->
<!-- <typeAlias type="com.jiayifan.po.User" alias="User"/> -->
<!-- 批量别名定义
指定包名,mybatis会自动的扫描pojo类,自动定义别名,别名就是
类名,首字母大写或小写都可以
-->
<package name="com.jiayifan.po"/>
</typeAliases>
五、typeHandlers
(类型处理器)
类型处理器用于java类型和jdbc类型映射,如下:
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id = #{id}
</select>
mybatis自带的类型处理器基本上满足日常需求,不需要单独定义。
六、mappers
(映射器)
Mapper配置的几种方法:
1、<mapper resource=" " />
使用相对于类路径的资源
如:<mapper resource="sqlmap/User.xml" />
2、<mapper url=" " />
使用完全限定路径
如:<mapper url="file:///D:\workspace_spingmvc\mybatis_01\config\sqlmap\User.xml" />
3、<mapper class=" " />
使用mapper接口类路径
如:<mapper class="cn.itcast.mybatis.mapper.UserMapper"/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
4、<package name=""/>
注册指定包下的所有mapper接口
如:<package name="cn.itcast.mybatis.mapper"/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
代码实例
<mappers>
<!-- 通过resource方法一次加载一个映射文件 -->
<mapper resource="sqlmap/User.xml"/>
<!-- <mapper resource="mapper/UserMapper.xml"/> -->
<!-- 通过mapper接口加载单个映射文件
遵循一些规范:需要将mapper接口的类名和mapper.xml映射文件名保持一致
且在一个目录中,这个的前提是使用mapper代理的方法
-->
<!-- <mapper class="com.jiayifan.mapper.UserMapper"/> -->
<!-- 批量加载
指定mapper接口的包名,mybatis自动的扫描包下的所有mapper接口
并加载,但是必须遵循 “通过mapper接口加载单个映射文件”的规范
-->
<package name="com.jiayifan.mapper"/>
</mappers>
参考了下面的一些文章: