若批评不自由,则赞美无意义
目录
前言
关于如何搭建SpringBoot工程以及开启Web功能,
可以查看我的这篇博客:用Spring Initializr快速构建SpringBoot及整合MVC
Mybatis-Plus
在我的上篇博客中 -> 史上踩坑最多的SpringBoot整合MyBatis 中介绍了SpringBoot整合MyBatis,那这个MyBatis-Plus又是什么来头?升级版吗?我们先来看一下Mybatis的图标:
再来看一下,MyBatis-Plus的图标:
其实MyBatis-Plus是MyBatis的增强工具,就如MyBatis-Plus官网:https://mp.baomidou.com/ 上说的一样,为简化开发而生,主要特点有:
- 润物无声,在MyBatis的基础上只做增强而不做改变,引入没有其他影响。
- 效率至上,快速进行CRUD操作,从而节省大量时间。
- 丰富功能,热加载、代码生成、分页、性能分析等功能一应俱全。
数据库部分
本文使用的是MySQL数据库,需要读者自行下载
在数据库中"mydb"中创建一张表"users",建表语句如下:
create table users # 创建表users
( # 整型 不为空 自动增长
id int not null auto_increment,
username varchar(50), # 可变字符串,最长为50
password varchar(50), # 可变字符串,最长为50
primary key (id) # 设置id为主键
)
往"users"表中插入两条数据,sql语句如下:
insert into users(username, password) values('古阙月', '123456');
insert into users(username, password) values('月阙古', '654321');
最后,"users"表中数据为:
开整
1.分别在依赖管理文件中导入Web的起步依赖spring-boot-starter-web
,MySQL数据库的连接器依赖mysql-connector-java
以及MyBatis-Plus的起步依赖mybatis-plus-boot-starter
,代码如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope> <!-- 作用域:表示运行时才生效-->
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
2.在配置文件application.yml
中配置数据源,如:
# 配置数据源
spring:
datasource:
# 数据库路径jdbc:mysql://localhost:3306/mydb 的缩写,并配置时区
url: jdbc:mysql:///mydb?serverTimezone=GMT%2B8
username: root # 用户名
password: 123456 # 密码
driver-class-name: com.mysql.cj.jdbc.Driver # 数据库驱动
3.创建实体类,如:
package com.guqueyue.entity;
/**
* @author guqueyue
* @Date 2020/4/12
**/
//lombok插件的注解
@Data // 若未使用lombok插件,请自行生成getter、setter以及toString方法
@AllArgsConstructor // 若未使用lombok插件,请自行生成有参构造方法
@NoArgsConstructor // 若未使用lombok插件,请自行生成无参构造方法
@Accessors(chain = true) // 开启链式编程
@TableName("users") // 因为实体类和表名不一致, 需要进行配置
public class User implements Serializable {
private Integer id;
private String username;
private String password;
}
其中实体类的类名与实例变量名
数据库中的表名与列名需一一对应,否则我们就需要另行配置,其中@TableName
注解为表名注解,@TableId
注解为主键注解以及@TableField
注解为字段注解…关于注解的详细信息以及MyBatis-Plus的其他注解官方文档上都有,我就不一一赘述 -> 点击即可查看
4.创建DAO层的映射接口,并继承MyBatis-Plus的公共接口,代码如下:
package com.guqueyue.dao;
/**
* @author guqueyue
* @Date 2020/4/12
* 映射接口UserMapper
**/
public interface UserMapper extends BaseMapper<User> {
}
5.在启动类上使用@MapperScan
,扫描映射接口,如:
package com.guqueyue.hello_guqueyue;
SpringBootApplication(scanBasePackages = "com.guqueyue")
@MapperScan("com.guqueyue.dao")
public class HelloGuqueyueApplication {
public static void main(String[] args) {
SpringApplication.run(HelloGuqueyueApplication.class, args);
}
}
6.创建Service层的接口,并继承MyBatis-Plus的公共接口,如:
package com.guqueyue.service;
/**
* @author guqueyue
* @Date 2020/4/12
**/
public interface IUserService extends IService<User> {
}
7.创建Service层的实现类,添加@Service
注解,并继承MyBatis-Plus的公共接口以及实现Service层的接口,代码如下:
/**
* @author guqueyue
* @Date 2020/4/12
**/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
}
8.创建Controller层,使用@Autowired
注解注入Service层的实现类对象,代码如下:
package com.guqueyue.controller;
/**
* @author guqueyue
* @Date 2020/4/12
**/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserServiceImpl userService;
/**
* 查询用户列表
* @return
*/
@RequestMapping("/list")
public List<User> userList() {
return userService.list();
}
}
9.最后一步,启动应用程序,打开浏览器输入"http://localhost:8080/user/list",浏览器显示:
说明整合成功!!!