Spring Boot整合MyBatis
MyBatis 是一款优秀的持久层框架,Spring Boot官方虽然没有对MyBatis进行整合,但是MyBatis团队自行适配了对应的启动器,进一步简化了使用MyBatis进行数据的操作
因为Spring Boot框架开发的便利性,所以实现Spring Boot与数据访问层框架(例如MyBatis)的整合非常简单,主要是引入对应的依赖启动器,并进行数据库相关参数设置即可
**基础环境搭建**:
**1.数据准备**
在MySQL中,先创建了一个数据库springbootdata,然后创建了两个表t_article和t_comment并向表中插入数据。其中评论表t_comment的a_id与文章表t_article的主键id相关联
```sql
#创建数据库
CREATEDATABASE springbootdata;
#选择使用数据库
USEspringbootdata;
#创建表t_article并插入相关数据
DROPTABLE IF EXISTS t_article;
CREATETABLE t_article (
id int(20) NOT NULL AUTO_INCREMENT COMMENT '文章id',
title varchar(200) DEFAULT NULL COMMENT '文章标题',
content longtext COMMENT '文章内容',
PRIMARY KEY (id)
)ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERTINTO t_article VALUES ('1', 'Spring Boot基础入门', '从入门到精通讲解...');
INSERTINTO t_article VALUES ('2', 'Spring Cloud基础入门', '从入门到精通讲解...');
#创建表t_comment并插入相关数据
DROPTABLE IF EXISTS t_comment;
CREATETABLE t_comment (
id int(20) NOT NULL AUTO_INCREMENT COMMENT '评论id',
content longtext COMMENT '评论内容',
author varchar(200) DEFAULT NULL COMMENT '评论作者',
a_idint(20) DEFAULT NULL COMMENT '关联的文章id',
PRIMARY KEY (id)
)ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERTINTO t_comment VALUES ('1', '很全、很详细', 'luccy', '1');
INSERTINTO t_comment VALUES ('2', '赞一个', 'tom', '1');
INSERTINTO t_comment VALUES ('3', '很详细', 'eric', '1');
INSERTINTO t_comment VALUES ('4', '很好,非常详细', '张三', '1');
INSERTINTO t_comment VALUES ('5', '很不错', '李四', '2');
```
**2. 创建项目,引入相应的启动器**
<imgsrc="./images/image-20191227142727497.png"alt="image-20191227142727497" style="zoom:67%;" />
**3. 编写与数据库表t_comment和t_article对应的实体类Comment和Article**
```java
publicclass Comment {
private Integer id;
privateString content;
private String author;
private Integer aId;
// 省略属性getXX()和setXX()方法
// 省略toString()方法
}
```
```java
public class Article {
private Integer id;
private String title;
private String content;
// 省略属性getXX()和setXX()方法
// 省略toString()方法
}
```
**4.编写配置文件**
(1)在application.properties配置文件中进行数据库连接配置
```properties
#MySQL数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/springbootdata?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
```
**注解方式整合Mybatis**
(1)创建一个用于对数据库表t_comment数据操作的接口CommentMapper
```java
@Mapper
publicinterface CommentMapper {
@Select("SELECT * FROM t_comment WHEREid =#{id}")
public Comment findById(Integer id);
}
```
```
@Mapper注解表示该类是一个MyBatis接口文件,并保证能够被Spring Boot自动扫描到Spring容器中
对应的接口类上添加了@Mapper注解,如果编写的Mapper接口过多时,需要重复为每一个接口文件添加@Mapper注解
为了解决这种麻烦,可以直接在Spring Boot项目启动类上添加@MapperScan("xxx")注解,不需要再逐个添加
@Mapper注解,@MapperScan("xxx")注解的作用和@Mapper注解类似,但是它必须指定需要扫描的具体包名
```
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这些内容,是从拉勾教育的《Java工程师高薪训练营》里学到的,课程内容非常全面,还有拉勾的内推大厂服务,推荐你也看看。

浙公网安备 33010602011771号