POM.xml
注意 MyBatis plus 和 Spring Boot 版本有要求,3 的 MyBatis-Plus 不能连接 Spring Boot4.x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| <?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>MyBatisPlysTest</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.5</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.48</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.53.4.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.7</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
|
创建数据库
application.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| server: port: 8081
spring: datasource: driver-class-name: org.sqlite.JDBC url: jdbc:sqlite:app.db sql: init: mode: always
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
schema.sql
1 2 3 4 5 6
| CREATE TABLE IF NOT EXISTS "user" ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, sex TEXT );
|
创建pojo和mapper
User
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| @TableName("user") public class User {
@TableId(type = IdType.AUTO) private Integer id;
@TableField("name") private String name;
@TableField("age") private Integer age;
@TableField("sex") private String sex;
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
public String getSex() { return sex; }
public void setSex(String sex) { this.sex = sex; } }
|
UserMapper.java
extends BaseMapper<User> 即实现 MyBatis-Plus 增删改查功能
1 2 3 4 5 6 7 8 9 10 11
| package org.example.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.example.pojo.User;
@Mapper public interface UserMapper extends BaseMapper<User> {
}
|
创建Controller
UserController.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| package org.example.controller;
import jakarta.annotation.Resource; import org.example.mapper.UserMapper; import org.example.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.Random;
@RestController @RequestMapping("/user") public class UserController { Random random = new Random();
@Autowired private UserMapper userMapper;
@GetMapping public List<User> getUser() { return userMapper.selectList(null); }
@GetMapping("/insert") public int insertUser(){ User user = new User(); user.setAge(random.nextInt(100)); user.setName("user" + random.nextInt(100)); user.setSex(random.nextBoolean() ? "男" : "女"); System.out.println("插入前user.id = " + user.getId()); return userMapper.insert(user); } }
|
main
1 2 3 4 5 6 7 8 9 10 11 12 13
| package org.example;
import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("org.example.mapper") @SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } }
|