文章目录
- 1. 通过typeAlias为每个类指定别名
- 2. 通过package为整个包下的类指定别名
在mapper中为SQL定义POJO返回类型时,要指定POJO的全限定名,如果SQL众多,要为每个SQL书写返回类型的全限定名,比较繁琐,此时可以用typeAliases为返回类型命名一个简单的别名就可以。指定了别名以后就不再区分大小写。
typeAliases指定别名,可总结如下几种方式
1. 通过typeAlias为每个类指定别名
比如在mybatis配置文件中指定com.lzj.bean.Car类的别名为car
<typeAliases><typeAlias type="com.lzj.bean.Car" alias="car" />
</typeAliases>
那么在mapper文件中书写SQL时就可以直接用别名car了,如下所示resultType返回类型用car表示,当然car不分大小写。
<select id="select1" parameterType="String" resultType="car">select * from car where name=#{name}
</select>
注意:如果只指定了类型,没有指定别名的话,默认别名是类的名字,例如上面的配置也可写成如下形式,没有为com.lzj.bean.Car类指定别名,源码解析的时候默认解析成了别名为类名Car,不区分大小写。
<typeAliases><typeAlias type="com.lzj.bean.Car" />
</typeAliases>
2. 通过package为整个包下的类指定别名
如果类太多,不方便为每个类指定别名,那么可以统一通过package为整个包下的类统一指定别名,每个类的全限定名的别名为该类的名字,不区分大小写,和上一节中只指定了type没有指定alias一样。比如如下所示
<typeAliases><package name="com.lzj.bean"/>
</typeAliases>
在mapper中书写SQL时就可以继续用下面形式
<select id="select1" parameterType="String" resultType="car">select * from car where name=#{name}
</select>