MyBatis探究-----为实体类Bean取别名,配置typeAliases

时间:2022-09-15 05:15:10

1.单个实体类设置别名

1.1 不使用alias

<typeAliases>
<!-- typeAlias:为某个java类型起别名 ; type:指定要起别名的类型全类名; 默认别名就是类名小写(大小写都可以) -->
<typeAlias type="com.mybatis.entity.Employee" />
</typeAliases>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.dao.EmployeeMapper">
<insert id="addEmployee" parameterType="Employee">
insert into
t_employee(empId,empName,empSex,empAge)
values(#{empId},#{empName},#{empSex},#{empAge})
</insert>
</mapper>

1.2 使用alias

<typeAliases>
<!-- alias:指定新的别名-->
<typeAlias type="com.mybatis.entity.Employee" alias="emp" />
</typeAliases>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.dao.EmployeeMapper">
<insert id="addEmployee" parameterType="emp">
insert into
t_employee(empId,empName,empSex,empAge)
values(#{empId},#{empName},#{empSex},#{empAge})
</insert>
</mapper>

2.多个实体类设置别名

2.1 不使用注解@Alias

    <typeAliases>
<!--package:为某个包下的所有类批量起别名 name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写),) -->
<package name="com.mybatis.entity" />
</typeAliases>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.dao.EmployeeMapper">
<insert id="addEmployee" parameterType="Employee">
insert into
t_employee(empId,empName,empSex,empAge)
values(#{empId},#{empName},#{empSex},#{empAge})
</insert>
</mapper>

2.2 使用注解@Alias

<typeAliases>
<!--package:为某个包下的所有类批量起别名 name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写),)
批量起别名的情况下,使用@Alias注解为某个类型指定新的别名-->
<package name="com.mybatis.entity" />
</typeAliases>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.dao.EmployeeMapper">
<insert id="addEmployee" parameterType="emp">
insert into
t_employee(empId,empName,empSex,empAge)
values(#{empId},#{empName},#{empSex},#{empAge})
</insert>
</mapper>
package com.mybatis.entity;

import org.apache.ibatis.type.Alias;

/**
* 雇员类
*
* @author yyx 2019年3月23日
*/
@Alias("emp")
public class Employee {
/**
*雇员ID
*/
private String empId;
/**
* 雇员姓名
*/
private String empName;
/**
* 雇员性别: 0 女,1 男
*/
private Integer empSex;
/**
* 雇员年龄
*/
private Integer empAge; public Employee() {
super();
} public Employee(String empId, String empName, Integer empSex, Integer empAge) {
super();
this.empId = empId;
this.empName = empName;
this.empSex = empSex;
this.empAge = empAge;
} public String getEmpId() {
return empId;
} public void setEmpId(String empId) {
this.empId = empId;
} public String getEmpName() {
return empName;
} public void setEmpName(String empName) {
this.empName = empName;
} public Integer getEmpSex() {
return empSex;
} public void setEmpSex(Integer empSex) {
this.empSex = empSex;
} public Integer getEmpAge() {
return empAge;
} public void setEmpAge(Integer empAge) {
this.empAge = empAge;
} }