文章目录
本篇请配合上一篇MyBatis入门案例食用,效果更香哦
为什么需要整合
- 根据MyBatis的入门案例可知,目前我们是需要手动的自己获取SqlSessionFactory,然后自己来获取Session对象的,这无疑非常麻烦
- Spring框架的核心就是减少自己new对象这个过程,所以我们将SqlSessionFactory托管给Spring容器,避免自己频繁调用
大致整合框架
Spring整合mybatis依赖的是第三方的jar包
- 创建maven工程
- 添加需要的依赖包
- 搭建三层架构
- 配置数据源
- 配置session工厂,依赖于第三方的jar包
- 编写mapper的映射文件
- 配置代理接口的路径
- 配置mapper映射文件的路径
- 使用接口查询
接下来就是每步的详细步骤
创建一个maven工程
在其他文章里已经多次提过通过cmd命令行的方式进行新建工程,这里就不再赘述
整个项目的完整目录结构如下:
添加依赖 (修改pom.xml文件)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dean</groupId>
<artifactId>SpringMybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringMybatis</name>
<url>http://maven.apache.org</url>
<!--1、更改版本 添加依赖-->
<!--版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!--依赖-->
<dependencies>
<!--junit 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--数据库连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!--配置bean-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
<!--IOC DI-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
<!--上下文-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
<!--aop-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId> <!--版本要对-->
<artifactId>spring-jdbc</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.29.RELEASE</version>
</dependency>
<!--本次新增 mybatis-spring-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</project>
搭建三层架构
搭建AppConfig(配置类) UserController(控制器)UserService(服务层)Application(启动类)框架
AppConfig
UserController
UserService
Application
配置数据源
资源文件data.properties存储数据库连接的必要参数
后在AppConfig(配置类)中配置数据 源
配置Session工厂
首先添加第三方jar包 mybatis-Spring
在配置类里将sqlSessionFactoryBean托管给Spring容器
框架将代理接口的对象注入到spring容器中
编写Mapper映射文件
Mybatis中怎么写,这里就怎么写
在src中创建UserMapper接口,在资源文件中创建UserMapper.xml
额外要用的是一个User javaBean
User
UserMapper
UserMapper.xml
配置代理接口的路径
在配置类上加一个注解即可
配置mapper映射文件的路径
在配置类中
使用接口查询
完善三层架构的代码
UserController
UserService
Application
最终运行结果如下: