SqlMapConfig.xml中配置的内容和顺序如下:
注:黑色表示主要的属性,并且在SqlMapConfig.xml配置文件中,这些属性配置存放的位置,必须按这个顺序存放
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
- environment(环境子属性对象)
- transactionManager(事务管理)
- dataSource(数据源)
mappers(映射器)
properties
用于引用外部java文件的配置信息,一般引用数据库连接的配置信息properties文件如下
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
引用外部配置文件
<!-- 是用resource属性加载外部配置文件 -->
<properties resource="db.properties">
<!-- 在properties内部用property定义属性 -->
<!-- 如果外部配置文件有该属性,则内部定义属性被外部属性覆盖 -->
<property name="jdbc.username" value="root123" />
<property name="jdbc.password" value="root123" />
</properties>
注意: MyBatis 将按照下面的顺序来加载属性:
- 在 properties 元素体内定义的属性首先被读取。
- 然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。 即如果在environment下的dataSource中已经配置了数据库连接信息,则会被properties 属性的内容覆盖
typeAliases
在SqlMapConfig.xml配置文件中使用了别名过后,在Mapper.xml配置文件中就不必为输入参数和输出结果写上全路径。可以简化开发代码
- 单个别名定义
<typeAliases>
<!-- 单个别名定义 -->
<typeAlias alias="user" type="cn.itcast.mybatis.pojo.User" />
</typeAliases>
在Mapper.xml配置文件中,resultType中直接可以填写类名即可
- 批量别名定义
通过扫描整个包下的类,所以包下的类,都可以使用别名
<typeAliases>
<!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感) -->
<package name="cn.itcast.mybatis.pojo" />
</typeAliases>
- Mybatis自己包装好了8大基本数据类型的别名
注:typeAliases标签一定是写在properties标签下
mappers(映射器)
- mapper resource
使用相对于类路径的资源,如:mapper resource=”sqlmap/User.xml” - mapper class
使用mapper接口类路径,如:
mapper class=”cn.itcast.mybatis.mapper.UserMapper”
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中 - package name(推荐)
package用于如果一个包下有许多mapper,则只需要使用该方式,可以将mapper配置文件全部映射到sqlMapConfig.xml文件中
如:package name=”cn.itcast.mybatis.mapper”
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。