前言
在 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 都是要写全限定类名,然而我们开启了别名之后,直接就写别名,简便了许多!