05.MyBatis学习--全局配置文件_typeAliases_别名

2023-03-28 13:55:16

通常,我们在xml映射文件中,的返回值类型都是写全类名,但是全类名太长,这时候,我们就可以通过起别名的方式来进行简化。

  1. 在mybatis全局配置文件设置Emolyoyee的别名
	<typeAliases>
        <typeAlias type="com.fzl.mybatis.bean.Employee"></typeAlias>
    </typeAliases>
  1. 修改映射文件中的返回值类型:
<select id="getEmpById" resultType="employee">
        select * from tbl_employee where id = #{id}
	</select>
  1. 测试运行。
  2. 我们可以使用alias指定新的别名.在全局配置文件中,使用alias指定别名。
<typeAliases>
<!--        typeAlias:为某个java类起别名
            type:指定要起别名的类型的全类名;默认别名就是类名小写:employee
            alias: 指定新的别名
-->
        <typeAlias type="com.fzl.mybatis.bean.Employee" alias="emp"></typeAlias>
    </typeAliases>

修改映射文件。测试运行

<select id="getEmpById" resultType="emp">
        select * from tbl_employee where id = #{id}
	</select>
  1. 上述只能对单个类型进行起别名,我们可以通过package:为某个包下的所有类起别名,其中name属性:指定包名(为当前包以及下面所有后代包的每一个类都起一个默认别名(类名小写))。代码如下
<!--    3.typeAliases ;别名处理器,可以为我们的java类型起别名,别名不分大小写-->
    <typeAliases>
<!--        typeAlias:为某个java类起别名
            type:指定要起别名的类型的全类名;默认别名就是类名小写:employee
            alias: 指定新的别名
-->
<!--        typeAlias type="com.fzl.mybatis.bean.Employee" alias="emp"></typeAlias>-->
        <package name="com.fzl.mybatis.bean"/>
    </typeAliases>
  1. 但是,批量处理别名有一个问题,当后代包中有和当前包类名相同的包时,运行就会报错,这时候我们可以通过@Alias注解来解决。 批量起别名的情况下,使用@Alias注解为某个类型指定新的别名。
@Alias("emp")
public class Employee {

    private Integer id;
    private String lastName;
    private String email;
    private String gender;

 <select id="getEmpById" resultType="emp">
        select * from tbl_employee where id = #{id}
	</select>
  • 作者:Adela0916
  • 原文链接:https://blog.csdn.net/Adela0916/article/details/111727516
    更新时间:2023-03-28 13:55:16