是
mybatis-plus
的增強款,封裝很多常見的
mybatis
等其他方法,非常好用,我知道他的原因是因為公司後端持久層就是雜他的基礎上進行封裝的,是以我就學習了一下,還是非常不錯的,分多期來寫吧
CRUD
環境
- IDEA
- springboot
- maven3
- mysql5.7
開始
1.首先需要準備一張表
user
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主鍵ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年齡',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '郵箱',
PRIMARY KEY (id)
);
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');
2.建立一個
springboot
初始化工程
根據需要選擇
完整
pom.xml
:(大家可以根據需要添加坐标)
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.king</groupId>
<artifactId>mybatis_plus</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis_plus</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.在
application.yml
中配置
mysql
資料源
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
4.編寫表對應的實體類
User
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long Id;
private String name;
private Integer age;
private String email;
}
5.編寫操作實體類的
Mapper
類,直接繼承
BaseMapper
,這是
mybatis-plus
封裝好的類。
6.先得在啟動類裡掃描
Mapper
類,即添加
@MapperScan
注解
@SpringBootApplication
//mapper類所在的目錄路徑
@MapperScan("com.king.mybatis_plus.mapper")
public class MybatisPlusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusApplication.class, args);
}
}
7.編寫測試類
@SpringBootTest
class MybatisPlusApplicationTests {
@Autowired(required = false)
private UserMapper userMapper;
/**
* 查詢
*/
@Test
public void testSelect(){
/*查詢所有的資料UserMapper
中的 selectList() 方法的參數為 MP 内置的條件封裝器 Wrapper,
是以不填寫就是無任何條件*/
List<User> list=userMapper.selectList(null);
for (User user:list){
System.out.println(user);
}
//根據主鍵查詢
System.out.println("記錄:");
System.out.println(userMapper.selectById(1));
}
/**
* 添加
*/
@Test
public void testInsert(){
//主鍵會自動生成
User user=new User();
user.setName("king");
user.setAge(20);
user.setEmail("[email protected]");
System.out.println("插入結果:"+userMapper.insert(user));
}
/**
* 删除
*/
@Test
public void testDelete(){
System.out.println("删除結果:"+userMapper.deleteById(1));
}
/**
* 修改
*/
@Test
public void testUpdate(){
User user=new User();
user.setId(2L);
user.setName("ting");
user.setAge(30);
user.setEmail("[email protected]");
System.out.println("修改結果:"+userMapper.updateById(user));
}
}
好的,到這裡簡單的CRUD就好了,咋們下期再見。