轉自:http://blog.csdn.net/lelewenzibin/article/details/42713585
問題描述
Mybatis有個代碼生成工具,生成的代碼里面有mapper.xml文件,mapper.xml中的sql語句會用parameterType這個屬性,而這個值可能是我們自定義的對象,此時,如果沒有typealiases,我們就需要為parameterType指定全路徑:
- <span style="font-size:14px;"><select id="getStudent" parameterType="com.csct.domain.StudentEntity" resultType="com.csct.domain.StudentEntity" resultMap="studentResultMap"></span>
代碼自動生成工具生成的mapper.xml文件中不帶全路徑,那么,如果有三、四十個實體對象,我們豈不是要修改的地方太多了。
解決辦法
這個時候,我們是不是很期望有一個方式,能把com.csct.domain下的實體全部給加載進來,mapper.xml遇到不識別的類就在這里查找呢?你都想到了,Mybatis當然也能想到吧,typealiases就是為此而生的。使用特簡單,如下:
- <span style="font-size:14px;"><configuration>
- <typeAliases>
- <!--
- 通過package, 可以直接指定package的名字, mybatis會自動掃描你指定包下面的javabean,
- 並且默認設置一個別名,默認的名字為: javabean 的首字母小寫的非限定類名來作為它的別名。
- 也可在javabean 加上注解@Alias 來自定義別名, 例如: @Alias(user)
- <package name="com.dy.entity"/>
- -->
- <typeAlias alias="UserEntity" type="com.dy.entity.User"/>
- </typeAliases>
- ......
- </configuration></span>
這樣,mapper.xml的sql語句就如下了:
- <span style="font-size:14px;"><select id="getStudent" parameterType="StudentEntity" resultType="StudentEntity" resultMap="studentResultMap"></span>