```java 说明: 本文内容来自尚硅谷 mapper可以注册一个sql映射
>用法一(常用这种方式)
resource:引用类路径下的sql映射文件
实例
```java
<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
用法二
url:引用网络路径或者磁盘路径下的sql映射文件
实例
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
用法三
class:引用(注册)接口
情况一:该javabean有对应的xml文件
<mapper class="com.atguigu.mybatis.dao.EmployeeMapper"/>
注意:此时的xml文件必须要与dao文件(注意不是与javabean文件)在同一个目录下面且文件名要一样
Junit的test如下
public void test01() throws IOException {
// 1、获取sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
// 2、获取sqlSession对象
SqlSession openSession = sqlSessionFactory.openSession();
try {
// 3、获取接口的实现类对象
//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
Employee employee = mapper.getEmpById(1);
System.out.println(mapper.getClass());
System.out.println(employee);
} finally {
openSession.close();
}
}
情况二:没有xml文件的情况
即就是dao通过注释的方式配置了sql语句如下
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);
}
则MyBatis配置文件应该如下配置
<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
Junit的test如下
@Test
public void test02() throws IOException{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
try{
EmployeeMapperAnnotation mapper = openSession.getMapper(EmployeeMapperAnnotation.class);
Employee empById = mapper.getEmpById(1);
System.out.println(empById);
}finally{
openSession.close();
}
}
用法四
package:批量注册,如下图所示在一个包中有多对映射文件与dao则可以通过批量配置方式来配置
这种方式要求SQL映射文件名必须和接口名相同并且在同一目录下
配置方式如下
<package name="com.atguigu.mybatis.dao"/>
Junit的test如下
@Test
public void test02() throws IOException{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
try{
EmployeeMapperAnnotation mapper = openSession.getMapper(EmployeeMapperAnnotation.class);
Employee empById = mapper.getEmpById(1);
System.out.println(empById);
}finally{
openSession.close();
}
}
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: