MyBatis接口式编程

MyBatis使用接口连接数据库

之前学习了如何传统的使用MyBatis连接数据库,今天学习如何使用更方便快捷的方式练级数据库。使用接口连接数据库

https://www.cnblogs.com/liziweiblog/p/11080470.html

1. 创建EmployeeMapper接口,定义sql方法

 1 package com.atguigu.mybatis.dao;
 2 
 3 import com.atguigu.mybatis.bean.Employee;
 4 
 5 /**
 6  * Employee数据库操作接口
 7  * @author Administrator
 8  *接口可以与配置文件动态绑定
 9  *namespace指定为接口的全类名,唯一标识指定为sql对应的方法名,返回值类型就是方法的返回值类型的全类名
10  */
11 public interface EmployeeMapper {
12     
13     public Employee getEmployeeById(Integer id);
14 
15 }

 

2. 将sql映射配置文件与接口绑定

  1. 将namespace配置为EmployeeMapper接口的全路径

  2. 将唯一标识id配置为方法名称

  3.将返回类型resultType设置为方法的返回值类型全路径

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.atguigu.mybatis.dao.EmployeeMapper">
 6  <!-- 
 7  namespace:名称空间
 8   id:唯一标识   #{id}表示从参数出取出id
 9   resultType:返回值类型
10  -->
11  <select id="getEmployeeById" resultType="com.atguigu.mybatis.bean.Employee">
12  select * from tbl_employee where id = #{id}
13  </select>
14 </mapper>

 

3. 编写测试用例,连接数据库

  1. 通过配置文件获取sqlSessionFactory对象

  2.通过sqlSessionFactory对象获取sqlSession对象

  3. 通过sqlSession对象获取接口的实现类对象employeeMapper

  4.调用employeeMapper对象的方法执行sql

  5.关闭sqlSession对象

 1 @Test
 2     public void test01() throws IOException {
 3         //1. 获取sqlSessionFactory对象
 4         String resource = "mybatis-config.xml";
 5         InputStream inputStream = Resources.getResourceAsStream(resource);
 6         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 7         
 8         
 9         SqlSession sqlSession = null;
10         try {
11             //2得到sqlSession对象
12             sqlSession = sqlSessionFactory.openSession();
13             //通过EmployeeMapper接口获取mapper对象
14             EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
15             //调用EmployeeMapper中的方法查询
16             Employee employee = mapper.getEmployeeById(1);
17             System.out.println(employee);
18         }finally {
19             //关闭sqlSession对象
20             sqlSession.close();
21         }
22     }

 

结果:

没有报错,查询成功

Employee [id=1, last_Name=tom, email=tom@atgui, gender=0]

上一篇:Spring源码解析之整合Mybatis


下一篇:读取配置文件