整合思路
Spring和Mybatis都是框架,那么两者联合使用的话究竟是Mybatis接管Spring呢还是Spring接管Mybatis呢?
Mybatis框架是一个持久层的ORM框架,而Spring是一个综合性的框架,所以两者的整合就是将Spring框架接管Mybatis中的SessionFactory工厂的创建,同时再通过读取mapper配置内容创建dao的代理实现类,并把它们都存入IOC容器。
整合方式
Spring和Mybatis都有独立的配置文件,整合时我们有两种选择。
- 第一种是保留两个框架的配置文件
- 第二种是只保留Spring配置文件,把Mybatis相关的配置都写在Spring的配置文件中
相比较来说,第二种方式更加简洁明了。
操作步骤
方式一——分别搭建框架
Mybatis框架搭建
步骤1:配置信息
1、.pom依赖文件
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2、pojo类
/**
* 账户的实体类
*/
public class Account {
private Integer id;
private String name;
private Double money;
//set,get等方法省略
}
3、持久层接口
/**
* 账户的持久层接口
*/
public interface AccountDao {
/**
* 更新账户
*/
void update(Account account);
/**
* 根据名称查询账户
*/
Account findByName(String name);
}
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓Mybatis配置文件,不做详细介绍
4、SQL映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hou.dao.AccountDao">
<!--配置根据名称查询-->
<select id="findByName" resultType="account" parameterType="string">
select * from account where name = #{
name}
</select>
<!--配置更新-->
<update id=