天天看點

MyBatis_全局配置檔案_mappers_sql映射注冊

<!-- 将我們寫好的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映射檔案而顯得不好看了

MyBatis_全局配置檔案_mappers_sql映射注冊

繼續閱讀