<!-- 将我們寫好的sql映射檔案(EmployeeMapper.xml)一定要注冊到全局配置檔案(mybatis-config.xml)中 -->
<!-- 6、mappers:将sql映射注冊到全局配置中 -->
<mappers>
<!--
mapper:注冊一個sql映射
注冊配置檔案
resource:引用類路徑下的sql映射檔案
mybatis/mapper/EmployeeMapper.xml
url:引用網路路徑或者磁盤路徑下的sql映射檔案
file:///var/mappers/AuthorMapper.xml
注冊接口
class:引用(注冊)接口,
1、有sql映射檔案,映射檔案名必須和接口同名,并且放在與接口同一目錄下;
2、沒有sql映射檔案,所有的sql都是利用注解寫在接口上;
-->
<!--
像下面這種是在conf中建立一個mybatis.mapper的包,用來存放sql映射檔案,這樣就不會顯得零散了
<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
-->
<!--
這種是基于注解的,基于注解就可以不用寫sql映射檔案了
<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
-->
<!-- 批量注冊: 批量注冊時在有sql映射檔案的情況下,映射檔案名必須和接口同名,并且放在與接口同一目錄下-->
<package name="com.atguigu.mybatis.dao"/>
</mappers>
推薦:
比較重要的,複雜的Dao接口我們來寫sql映射檔案
不重要,簡單的Dao接口為了開發快速可以使用注解;
基于注解的接口
EmployeeMapperAnnotation.java
:
package com.atguigu.mybatis.dao;
import org.apache.ibatis.annotations.Select;
import com.atguigu.mybatis.bean.Employee;
public interface EmployeeMapperAnnotation {
@Select("select * from tbl_employee where id=#{id}")
public Employee getEmpById(Integer id);
}
測試:
@Test
public void test02() throws IOException{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
try{
EmployeeMapperAnnotation mapper = openSession.getMapper(EmployeeMapperAnnotation.class);
Employee empById = mapper.getEmpById();
System.out.println(empById);
}finally{
openSession.close();
}
}
得出的查詢結果是正确的
批量注冊時在有sql映射檔案的情況下,映射檔案名必須和接口同名,并且放在與接口同一目錄下
如果想在視覺效果上好看我們可以在conf中建立一個與
com.atguigu.mybatis.dao
一樣名字的包,把SQL映射檔案放到裡面,這樣src下就不用放SQL映射檔案而顯得不好看了
