1、环境准备
1. 环境准备
1. 引入依赖
在Spring Boot项目的pom.xml
文件中引入MyBatis-Plus及其数据库驱动的依赖。这里以MySQL为例:
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis-Plus Starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>你的版本号</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Lombok(可选,用于简化实体类) -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2. 配置数据库
在application.yml
或application.properties
中配置数据库连接信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:/mappers/*.xml
type-aliases-package: com.example.demo.entity
global-config:
db-config:
id-type: auto
logic-delete-value: 1
logic-not-delete-value: 0
3. 创建实体类
使用Lombok简化代码,例如:
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
private Integer age;
// 其他字段...
}
4. 创建Mapper接口
继承BaseMapper
来简化开发:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
public interface UserMapper extends BaseMapper<User> {
// 这里可以添加自定义的Mapper方法,如果不需要可以留空
}
5. 创建Service层
如果你需要,可以创建一个Service层来处理业务逻辑:
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
public class UserService extends ServiceImpl<UserMapper, User> {
// 这里可以添加自定义的业务逻辑方法
}
6. 创建Controller层
创建RESTful API来处理HTTP请求:
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/")
public List<User> listAllUsers() {
return userService.list();
}
@PostMapping("/")
public User createUser(@RequestBody User user) {
userService.save(user);
return user;
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getById(id);
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
user.setId(id);
userService.updateById(user);
return user;
}
2、增加
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/")
public User createUser(@RequestBody User user) {
userService.save(user); // 调用Service层的save方法,实际调用的是MyBatis-Plus的插入操作
return user;
}
}
3、删除
// 删除单个用户
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
userService.removeById(id); // 或者使用userMapper.deleteById(id)直接调用Mapper
return "User deleted successfully";
}
// 批量删除用户(示例)
@DeleteMapping("/batch")
public String deleteUsers(@RequestBody List<Long> ids) {
userService.removeByIds(ids); // 批量删除
return "Users deleted successfully";
}
4、修改
// 更新用户信息
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
user.setId(id); // 确保用户ID被设置
userService.updateById(user); // 调用Service层的updateById方法
return user;
}
5、查找
// 查询单个用户
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getById(id); // 调用Service层的getById方法
}
// 查询所有用户
@GetMapping("/")
public List<User> getAllUsers() {
return userService.list(); // 调用Service层的list方法,实际调用的是MyBatis-Plus的查询所有操作
}
// 根据条件查询用户(示例,需要自定义Mapper或Service方法)
@GetMapping("/search")
public List<User> searchUsers(@RequestParam String name) {
// 这里仅为示例,实际中可能需要自定义Mapper接口中的方法
// return userService.searchByName(name); // 假设有这样一个自定义方法
// ... 实际实现中,你可能需要编写一个自定义的Mapper方法并使用@Select注解来定义SQL查询
}