1. 程式人生 > >配置檔案中的別名以及mapper中的namespace

配置檔案中的別名以及mapper中的namespace

MyBatis中如果每次配置類名都要寫全稱也太不友好了,我們可以通過在主配置檔案中配置別名,就不再需要指定完整的包名了。

別名的基本用法:

  1. <configuration>
  2.     <typeAliases>
  3.       <typeAliastype="com.domain.Student"alias="Student"/>
  4.   </typeAliases>
  5.   ......  
  6. </configuration>
但是如果每一個實體類都這樣配置還是有點麻煩這時我們可以直接指定package的名字, mybatis會自動掃描指定包下面的javabean,並且預設設定一個別名,預設的名字為: javabean 的首字母小寫的非限定類名來作為它的別名(其實別名是不去分大小寫的)。也可在javabean 加上註解@Alias 來自定義別名, 例如: @Alias(student)

  1. <typeAliases>
  2.     <packagename="com.domain"/>
  3. </typeAliases>

這樣,在Mapper中我們就不用每次配置都寫類的全名了,但是有一個例外,那就是namespace。

namespace屬性

在MyBatis中,Mapper中的namespace用於繫結Dao介面的,即面向介面程式設計。

它的好處在於當使用了namespace之後就可以不用寫介面實現類,業務邏輯會直接通過這個繫結尋找到相對應的SQL語句進行對應的資料處理

  1. student = (Student) session.selectOne(
    "com.domain.Student.selectById"new Integer(10));  

  1. <mapper namespace="com.domain.Student">    
  2.     <select id="selectById" parameterType="int" resultType="student">    
  3.        select * from student where id=#{id}    
  4.     </select>  
  5. </mapper>