Spring整合Mybatis

一、回顾mybatis

步骤

  1. 编写实体类
  2. 编写核心配置文件
  3. 编写接口
  4. 编写Mapper.xml
  5. 测试

二、MyBatis-Spring

2.1 官方介绍

MyBatis-Spring会帮助你将MyBatis代码整合到Spring中。它允许MyBatis参与到Spring 的事务管理之中,创建映射器mapper和SqlSession并注入到bean中,以及将Mybatis的异常转换为Spring 的DataAccessException,最终,可以做到应用代码不依赖于MyBatis,Spring或MyBatis-Spring

官方快速入门

2.2 快速上手

① 导入依赖

使用Maven作为构建工具需在pom.xml文件中加入以下代码:

1
2
3
4
5
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.5</version>
</dependency>

② 步骤

  1. 编写数据源配置
  2. sqlSessionFactory
  3. sqlSessionTemplate(MyBatis-Spring的核心)
  4. 给接口加实现类
  5. 将自己写的实现类注入到Spring中
  6. 测试

在Spring上下文中定义至少两个东西:

  • SqlSessionFactory
  • 至少一个数据映射器类

可使用SqlSessionFactoryBean来创建SqlSessionFactory。要配置这个工厂bean,只需要把下面的代码放在Spring的XML配置文件中。

1
2
3
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>

service要调用mapper的方法,但是mapper是一个接口,没有实现类,这个实现类中需要通过MyBatis中的工厂生产会话来调用接口的方法并实现。这里要给他建一个mapper的实现类,再注入到bean中交给Spring管理。

2.3. 第二种使用方式(更简便)

测试

三、相关jar包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<!-- Spring操作数据库的话,还需要一个spring-jdbc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
</dependencies>

请我喝杯咖啡吧~

支付宝
微信