前言

MyBatis 的配置文件中开启别名的话,这样我们在 mapper.xml 文件中的 parameterTyperesultType 中就可以使用别名了。其实这是为了避免在 xml 文件中输入过长的全限定类名而简化实体名的编写。

MyBatis 本身也自定义了一些别名,我们可以在 mapper.xml 文件中直接使用这些别名

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
mapMap

MyBatis 自定义别名

可以在 mybatis 的配置文件中开启别名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!--开启别名-->
<typeAliases>
<typeAlias type="cn.imzjw.entity.Book" alias="book"/>
<typeAlias type="cn.imzjw.entity.User" alias="user"/>
...
... 订单
</typeAliases>

<!-- 数据库连接信息-->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="pooled">
<property name="url" value="jdbc:mysql:///book?characterEcndoing=utf8"/>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>

这种方式的缺点就是要一个个的给所有实体类开启别名

方式二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!--开启别名-->
<typeAliases>
<typeAlias type="cn.imzjw.entity"/>
</typeAliases>

<!-- 数据库连接信息-->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="pooled">
<property name="url" value="jdbc:mysql:///book?characterEcndoing=utf8"/>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>

直接扫描实体类包下的所有实体类,简单粗暴,用这种方式的,别名亦是类名,首字母大写小写都可以

如何使用别名?

xxxMapper.xml 文件使用别名

1
2
3
4
5
6
7
<insert id="addBook" parameterType="Book">
INSERT INTO book (book_name, book_counts, detail) VALUES (#{bookName}, #{bookCounts}, #{detail})
</insert>

<select id="selectAllBook" resultType="book">
SELECT * FROM book
</select>

原本这里的 parameterTyperesultType 都是要写全限定类名,然而我们开启了别名之后,直接就写别名,简便了许多!