会当凌绝顶,一览众山小
| @Author:TTODS
MyBatisPlus框架系列文章目录:
-
Springboot整合MybatisPlus(当前)
-
MyBatisPlus之代码生成器(近期发布)
前言
工欲善其事,必先利其器。Mybatis-plus是一个MyBatis的增强工具,为简化开发、提高效率而生。
本文介绍了如何在springboot中使用MybatisPlus.
mybatis-plus 官网:https://baomidou.com/
项目创建及依赖导入
使用idea创建一个maven项目,在maven项目的pom.xml
文件中添加如下依赖
<!-- springboot 父项目 -->
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<!-- mybatis-plus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!-- jdbc依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 使用lombok使实体类代码看起来更简洁 也可以不使用 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- springboot 测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
创建数据库和测试表
在mybatisplus
数据库中新建一个User
表:
CREATE TABLE `mybatisplus`.`user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号',
`name` varchar(255) NULL COMMENT '姓名',
`age` int(11) NULL COMMENT '年龄',
`gender` tinyint(1) NULL COMMENT '性别 1:男 2:女',
`email` varchar(50) NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
);
插入一些用于测试的数据:
INSERT INTO `user` VALUES (1, 'Alice', 15, 0, 'alice@gmail.com');
INSERT INTO `user` VALUES (2, 'Bob', 18, 1, 'bob@gmail.com');
INSERT INTO `user` VALUES (3, 'Colin', 12, 1, 'colin@gmail.com');
INSERT INTO `user` VALUES (4, 'David', 25, 1, 'david@gmail.com');
INSERT INTO `user` VALUES (5, 'Ellie ', 9, 0, 'ellie@gmail.com');
创建好后的User表如下图:
数据源配置
在**src/main/resources/**文件夹中新建springboot的配置文件application.yml
,并添加数据源配置
spring:
datasource:
name: mybaitsplus
url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=Asia/Shanghai
username: root
password:
driver-class-name: com.mysql.cj.jdbc.Driver
# 日志打印
logging:
level:
root: info
com.example: debug
编写pojo实体类
package com.example.pojo;
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private Integer age;
private Integer gender;
private String email;
}
这里使用了lombok工具的@Data
注解可以为User类自动生成setter
、getter
、toString
、及构造器等方法。
编写Mapper接口
此接口应继承MybatisPlus提供的BaseMapper
接口,该接口是一个泛型接口,尖括号中就是对应的实体类的类型。在继承了BaseMapper<User>
后,我们无需编写userMapper.xml文件,就可以实现基本的CURD.
package com.example.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.pojo.User;
public interface UserMapper extends BaseMapper<User> {
}
编写Springboot启动类
记得使用@MapperScan
注解标明mapper类所在的包。
package com.example;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.example.mapper")
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
编写测试类
创建一个测试类,来测试UserMapper的selectById方法,若运行成功,就说明mybatisplus与Springboot整合完成。
package com.example;
import com.example.mapper.UserMapper;
import com.example.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.List;
@SpringBootTest
@RunWith(SpringRunner.class)
public class MapperCurdTests {
@Autowired
UserMapper userMapper;
@Test
public void testSelect(){
User user = userMapper.selectById(1);
System.out.println(user);
}
}
运行结果图:
值得注意的是使用@Autowired标注的Mapper类由于idea检测不到而被标红,实际上这并不影响运行。
强迫症玩家可以使用@Resource注解替换@Autowired注解或者给Mapper类加上@Repository注解。