(原创)Mybatis中别名的作用:
在mybatis-config.xml配置别名如下:
<!-- 别名 -->
<typeAliases>
<package name="cn.itcast.core.bean"/>
</typeAliases>
它的作用是让Mapper.xml中的参数找到对应类,如下面parameterType="TestTb">,如果没有配置别名,则要改为parameterType="cn.itcast.core.bean.TestTb">,
配置别名首先当然要保证pojo实体,在一个包下面如cn.itcast.core.bean,这样配置别名后,都可找到对应的参数;
<mapper namespace="cn.itcast.core.dao.TestTbDao">
<!-- 保存 -->
<insert id="insertTestTb" parameterType="TestTb">
insert into test_tb
(id,name,birthday)
values
(#{id},#{name},#{birthday})
</insert>
</mapper>
(转载)问题描述
Mybatis有个代码生成工具,生成的代码里面有mapper.xml文件,mapper.xml中的sql语句会用parameterType这个属性,而这个值可能是我们自定义的对象,此时,如果没有typealiases,我们就需要为parameterType指定全路径:
<span style="font-size:14px;"><select id="getStudent" parameterType="com.csct.domain.StudentEntity" resultType="com.csct.domain.StudentEntity" resultMap="studentResultMap"></span>
代码自动生成工具生成的mapper.xml文件中不带全路径,那么,如果有三、四十个实体对象,我们岂不是要修改的地方太多了。
解决办法
这个时候,我们是不是很期望有一个方式,能把com.csct.domain下的实体全部给加载进来,mapper.xml遇到不识别的类就在这里查找呢?你都想到了,Mybatis当然也能想到吧,typealiases就是为此而生的。使用特简单,如下:
<span style="font-size:14px;"><configuration>
<typeAliases>
<!--
通过package, 可以直接指定package的名字, mybatis会自动扫描你指定包下面的javabean,
并且默认设置一个别名,默认的名字为: javabean 的首字母小写的非限定类名来作为它的别名。
也可在javabean 加上注解@Alias 来自定义别名, 例如: @Alias(user)
<package name="com.dy.entity"/>
-->
<typeAlias alias="UserEntity" type="com.dy.entity.User"/>
</typeAliases>
......
</configuration></span>
这样,mapper.xml的sql语句就如下了:
<span style="font-size:14px;"><select id="getStudent" parameterType="StudentEntity" resultType="StudentEntity" resultMap="studentResultMap"></span>