Mybatis实现单个和批量定义别名typeAliases

时间:2022-06-12 21:52:53

单个和批量定义别名typeAliases

使用Mybatis的别名typeAliases可以在xml文件里非常方便的使用类,而不需要写出这个类的全部路径

一、使用和不使用别名的区别是

不使用别名时:parameterType中需要写出这个类的全路径,特别麻烦

?
1
2
3
4
<insert id="saveCity" keyProperty="id" useGeneratedKeys="true" parameterType="com.jd.lgg.web.domain.city.City">
      insert into jd_am_visit_city(cityName,creationTime,updateTime,yn)
      values(#{cityName},now(),now(),1)
  </insert>

使用别名时,直接用别名来代替这个类就可以啦

?
1
2
3
4
<insert id="saveCity" keyProperty="id" useGeneratedKeys="true" parameterType="city">
     insert into jd_am_visit_city(cityName,creationTime,updateTime,yn)
     values(#{cityName},now(),now(),1)
 </insert>

二、如何定义单个别名

?
1
2
3
4
5
6
7
8
<?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>
   <!-- 这样定义后就可以用city来代替整个City类全路径了-->
   <typeAlias alias="city" type="com.jd.lgg.web.domain.city.City"/>
 </typeAliases>
</configuration>

三、如何批量定义别名

但是如何整个项目的实体类特别多的时候,每一个都这么定义特别麻烦,而且如有有一个忘了定义就使用的话,项目会报很奇怪的错误,那么这个问题如何解决呢?

答案是批量定义别名,只定义这类所在的包名就可以了,这些包下面的类或者这些包的子包下面的类都可以直接用他们类名,或者将类名的首字母小写来代替这个类,

批量定义别名的格式如下

?
1
2
3
4
5
6
7
8
<?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>
   <!-- 批量定义别名,指定包名,此时pojo类的别名是pojo类的类名首字母大写或小写都行 -->
   <package name="com.jd.lgg.web.domain"/> 
 </typeAliases>
</configuration>

这样的话,所有的在domain包下的类都可以用该类的类名来表示这个类了,在xml文件中的使用于单个定义别名一模一样。

typeAliases别名配置元素详述

mybatis为我们已经实现了很多别名,已经为许多常见的 Java 类型内建了相应的类型别名。

它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。

别名 映射的类型
_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
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/u011900448/article/details/79035109