Mybatis中别名的作用

(原创)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>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值