一.使用typeAlias单独配置别名
在执行select查询或insert添加的SQL语句时,都要在parameterType或resultType属性中写上完整的实体类路径,路径中需要包含完整的包名,示例代码如下:
<insert id="insert" parameterType="bean.Userinfo" useGeneratedKeys="true" keyProperty="id">
如果包名嵌套层级较多,则会出现大量冗余的配置代码,这时可以在mybatis-config.xml配置文件中使用<typeAliases>标签来简化。示例如下:
<configuration>
<typeAliases>
<!--type属性:完整的实体类 包路径;
alias属性:实体类别名-->
<typeAlias alias="userinfo" type="sqlmapping.Userinfo"/>
</typeAliases>
</configuration>
这个别名可以在SQL映射文件中进行使用,示例代码如下:
<insert id="insert" parameterType="userinfo" useGeneratedKeys="true" keyProperty="id">
注意: 在引用别名时是不区分大小写的,比如如下代码也能正确得到运行。
parameterType="USERinfo"
resultType="USERINFo"
二.使用package批量配置别名
使用<typeAliases>虽然可以实现配置别名,但如果实体类的数量较多,则极易出现<typeAlias>配置爆炸,这种情况可以使用<package>标签来解决,它的原理就是扫描指定包下的类,这些类都被自动赋予了与类同名的别名,不区分大小写,别名中不包含包名。示例代码如下:
<configuration>
<typeAliases>
<package name="包名"/>
</typeAliases>
</configuration>
在SQL映射文件中的使用同上一步。
注意: 如果在不同的包中出现相同实体类名的情况,在MyBatis解析XML配置文件时就会出现异常信息。
网友评论