天天看点

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映射注册

继续阅读