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文件中的使用於單個定義別名一模一樣.


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