使用 typeAliases 配置别名
我们看一下映射文件,是不是有很多重复的地方。这些都是配置一个对应的实体类,但这样整个配置文件里会出现很多冗长的包路径。如果能用一个别名来代替那就好了。
我们可以使用 typeAliases 标签来标记别名。注意这个标签是在 conf.xml 文件里面配置的,不是在映射文件里面,并且这个标签要放在 properties 标签的下面、environments 的上面。
方式一:为单个类指定别名
<typeAliases>
<typeAlias type="cn.foxdevelop.models.Account" alias="Account"/>
</typeAliases>Code language: HTML, XML (xml)
然后我们在映射文件里面就可以直接使用 Account 代替完整的包路径:
<select id="getAccount" parameterType="int" resultType="Account">
select * from account where id = #{id}
</select>Code language: HTML, XML (xml)
方式二:为包下所有类自动配置别名
我们还可以为所有的类都增加别名,只需要增加一个 package 配置,这样默认所有的类都不需要使用包路径了。
<typeAliases>
<!-- <typeAlias type="cn.foxdevelop.models.Account" alias="Account"/> -->
<package name="cn.foxdevelop.models"/>
</typeAliases>Code language: HTML, XML (xml)
这样配置之后,映射文件里面的所有类都默认直接使用类名即可,例如:
<select id="getAccount" parameterType="int" resultType="Account">
select * from account where id = #{id}
</select>Code language: HTML, XML (xml)
<insert id="addAccount" parameterType="Account">
insert into account(name,age,sex,AddTime) values(#{name},#{age},#{sex},#{AddTime})
</insert>Code language: HTML, XML (xml)
conf.xml 中完整配置示例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties"/>
<typeAliases>
<package name="cn.foxdevelop.models"/>
</typeAliases>
<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>
<mappers>
<mapper resource="cn/foxdevelop/mapper/AccountMapper.xml"/>
</mappers>
</configuration>Code language: HTML, XML (xml)
Previous: mybatis数据库的配置单独放在一个properties文件