Mybatis如何单个和批量定义别名typeAliases

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

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

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

  <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>


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

   <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>

二,如何定义单个别名

<?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>

三,如何批量定义别名


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

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

批量定义别名的格式如下

 <?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文件中的使用於单个定义别名一模一样.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章