且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

MyBatis之Spring整合

更新时间:2022-04-18 23:01:45

  MyBatis之Spring整合,Spring、SpringMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和MyBatis整合到一起,成为我们项目开发的技术骨架。

引入依赖

首先我们需要在Maven项目中添加依赖,Spring框架和MyBatis框架需要的依赖有:

mybatis MyBatis
mybatis-spring MyBatis的Spring兼容包,用于整合MyBatis
spring-jdbc Spring的JDBC包,配置数据源时需要
spring-test Spring单元测试
spring-context Spring上下文,提供IOC和AOP服务
Junit 单元测试框架
mysql-connector-java MySQL数据库驱动
c3p0 连接池
添加配置文件

首先我们用properties文件配置JDBC的参数:

示例代码:jdbc.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost/java1903?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false
user=root
password=123456

接下来在Spring配置文件中整合MyBatis








































编写Mapper接口

以一个基本的查询功能为例

代码示例:

/**

  • 用户DAO接口
    */

public interface UserDAO {
/**

  • 查询所有用户
    */

List selectAll();
}

编写Mapper 映射文件

编写Mapper接口的映射,实现查询功能

代码示例:

<?xml version="1.0" encoding="UTF-8"?>
br>PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
















select * from tb_user

Spring整合JUnit进行单元测试

使用Spring整合JUnit,测试Mapper接口是否能用SpringIOC实现注入:

代码示例

@ContextConfiguration(locations = "classpath:applicationContext.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class TestDAO {
@Resource
UserDAO userDAO;
@Test
public void testUserDAO(){
List users = userDAO.selectAll();
users.forEach((user)->System.out.println(user));
}
}
MyBatis之Spring整合

总结

使用Spring整合MyBatis后,能够利用Spring强大的IOC机制,将Mapper接口的代理对象注入进来,从而避免了手动创建SqlSessionFactory和SqlSession对象的麻烦,同时Spring对SqlSession的访问方式进行了优化,解决了SQLSession的线程安全问题。