前言
在 MyBatis
的配置文件中开启别名的话,这样我们在 mapper.xml
文件中的 parameterType
和 resultType
中就可以使用别名了。其实这是为了避免在 xml
文件中输入过长的全限定类名而简化实体名的编写。
MyBatis
本身也自定义了一些别名,我们可以在 mapper.xml
文件中直接使用这些别名
别名 | 映射的类型 |
---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
map | Map |
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>
|
原本这里的 parameterType
和 resultType
都是要写全限定类名,然而我们开启了别名之后,直接就写别名,简便了许多!