mappers:映射器,以最佳的方式是告訴 MyBatis 到哪里去找映射文件。
<!-- 使用相對於類路徑的資源引用,要滿足一個條件:1.即映射文件只要放在類路徑下,就可以 根據相對路徑找到,放在resourses(設置為了內部資源的文件夾)目錄下即可。
<mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="IStudentDao.xml"/> </mappers>
映射文件可以和Dao接口不在同一個包下
映射文件名可以和Dao接口的簡單類名不相同
映射文件的<mapper/>標簽的namespace的值可以誰便寫:<mapper namespace="xxx"></mapper>;但是這一點注意,如果你要用log4j的話,還是把namespace的值寫成Dao接口
<!-- 使用完全限定資源定位符(URL) url可以注冊在本地磁盤上的映射文件,不常用-->
<mappers>
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<mapper url="file:///var/mappers/BlogMapper.xml"/>
<mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!--
使用下面的注冊方式需要滿足以下三點要求:
1) 映射文件要與Dao接口在同一個包下
2) 映射文件名要與Dao接口的簡單類名相同
3) 映射文件的<mapper/>標簽的namespace屬性值為Dao接口的全限定性類名
滿足以上三個條件,那么這里的class屬性值就可以填寫Dao接口的全限定性類名
-->
<mapper class="com.abc.dao.IStudentDao"/>
<!--
使用下面的注冊方式需要滿足以下四點要求:
1) 映射文件要與Dao接口在同一個包下
2) 映射文件名要與Dao接口的簡單類名相同
3) 映射文件的<mapper/>標簽的namespace屬性值為Dao接口的全限定性類名
4) 使用動態Mapper
滿足以上四個條件,那么這里的name屬性值就可以填寫Dao接口所在的包名
-->
<package name="com.abc.dao"/>
注意:
1、當采用class、package方式時,映射文件(Mapper.xml)和接口必須命名相同,並且放在與接口同一目錄下。(盡量不要采用這種方法)
2、當采用class方式時,沒有SQL映射文件,所有的SQL都是利用注解寫在接口上,這樣就可以避免注意1的事情發生,提高維護性,不是很重要的SQL語句可以采用注解的方式,這樣可以提高開發速度,重要和復雜的接口、SQL建議還是采用SQL映射文件的方式。(盡量采用這種方法)