springboot+mybatis plus怎么实现交互
时间: 2023-09-07 19:14:39 浏览: 188
Spring Boot 是一个用于创建独立的、基于Spring的应用程序的框架,而 Mybatis Plus 是在 Mybatis 的基础上进行了封装和扩展,提供了更为便捷的 CRUD 操作。
要实现 Spring Boot 和 Mybatis Plus 的交互,需要进行以下几个步骤:
1. 添加 Maven 依赖
在 pom.xml 文件中添加以下 Maven 依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.16</version>
</dependency>
```
其中,spring-boot-starter-web 用于创建 Web 应用程序,mybatis-plus-boot-starter 用于集成 Mybatis Plus,druid-spring-boot-starter 用于集成 Druid 数据库连接池。
2. 配置数据源
在 application.properties 文件中配置数据源信息,例如:
```
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus_test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 配置Druid连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
```
这里使用的是 MySQL 数据库和 Druid 数据库连接池。
3. 配置 Mybatis Plus
在 application.properties 文件中添加 Mybatis Plus 的配置信息,例如:
```
# Mybatis Plus配置
mybatis-plus.mapper-locations=classpath*:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.demo.entity
mybatis-plus.global-config.id-type=auto
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
mybatis-plus.configuration.map-underscore-to-camel-case=true
```
其中,mapper-locations 指定 Mapper 映射文件的位置,type-aliases-package 指定实体类的包名,global-config 中配置了主键生成策略和逻辑删除的配置。
4. 创建实体类和 Mapper 接口
创建实体类和对应的 Mapper 接口,例如:
```
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
private Date createTime;
}
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
```
其中,@TableName 注解指定了实体类对应的表名,@TableId 注解指定了主键生成策略,@Mapper 注解指定了 Mapper 接口。
5. 创建 Service 层
创建 Service 层,例如:
```
public interface UserService extends IService<User> {
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
```
其中,IService 和 ServiceImpl 分别是 Mybatis Plus 的接口和实现类,用于提供常用的 CRUD 操作。
6. 创建 Controller 层
创建 Controller 层,例如:
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getById(id);
}
@PostMapping("/")
public boolean addUser(@RequestBody User user) {
return userService.save(user);
}
@PutMapping("/")
public boolean updateUser(@RequestBody User user) {
return userService.updateById(user);
}
@DeleteMapping("/{id}")
public boolean deleteUser(@PathVariable Long id) {
return userService.removeById(id);
}
}
```
其中,@RestController 和 @RequestMapping 注解用于创建 RESTful 风格的接口,@Autowired 注解用于注入 UserService 对象,@GetMapping、@PostMapping、@PutMapping 和 @DeleteMapping 注解分别对应 HTTP 的 GET、POST、PUT 和 DELETE 请求。
至此,就实现了 Spring Boot 和 Mybatis Plus 的交互,并提供了常见的 CRUD 操作。
阅读全文