springboot整合mybatis-plus 实现用户添加、删除、修改、查询、多条件分页查询

1. 创建 Spring Boot 项目

你可以使用 Spring Initializr(https://start.spring.io/ )来创建一个基本的 Spring Boot 项目,添加以下依赖:

  • Spring Web
  • Spring Data JPA(这里只是占位,实际使用 MyBatis-Plus)
  • MyBatis Framework
  • MySQL Driver

2. 添加 MyBatis-Plus 依赖

pom.xml文件中添加 MyBatis-Plus 的依赖:

xml

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.4</version>
</dependency>

3. 配置数据库连接

application.propertiesapplication.yml中配置数据库连接信息:

yaml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

4. 创建实体类

创建一个User实体类,对应数据库中的用户表:

java

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 username;
    private String email;
}

5. 创建 Mapper 接口

创建一个UserMapper接口,继承BaseMapper

java

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

6. 创建 Service 接口和实现类

创建UserService接口和UserServiceImpl实现类:

java

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import java.util.List;

public interface UserService {
    // 添加用户
    boolean saveUser(User user);
    // 删除用户
    boolean deleteUser(Long id);
    // 修改用户
    boolean updateUser(User user);
    // 查询所有用户
    List<User> getAllUsers();
    // 多条件分页查询
    IPage<User> getUserPage(Page<User> page, String username, String email);
}

java

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public boolean saveUser(User user) {
        return userMapper.insert(user) > 0;
    }

    @Override
    public boolean deleteUser(Long id) {
        return userMapper.deleteById(id) > 0;
    }

    @Override
    public boolean updateUser(User user) {
        return userMapper.updateById(user) > 0;
    }

    @Override
    public List<User> getAllUsers() {
        return userMapper.selectList(null);
    }

    @Override
    public IPage<User> getUserPage(Page<User> page, String username, String email) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        if (username != null && !username.isEmpty()) {
            queryWrapper.like("username", username);
        }
        if (email != null && !email.isEmpty()) {
            queryWrapper.like("email", email);
        }
        return userMapper.selectPage(page, queryWrapper);
    }
}

7. 开启分页插件

创建一个配置类,开启 MyBatis-Plus 的分页插件:

java

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyBatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

8. 创建 Controller

创建一个UserController来处理 HTTP 请求:

java

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.*;
import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    // 添加用户
    @PostMapping
    public boolean saveUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    // 删除用户
    @DeleteMapping("/{id}")
    public boolean deleteUser(@PathVariable Long id) {
        return userService.deleteUser(id);
    }

    // 修改用户
    @PutMapping
    public boolean updateUser(@RequestBody User user) {
        return userService.updateUser(user);
    }

    // 查询所有用户
    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    // 多条件分页查询
    @GetMapping("/page")
    public IPage<User> getUserPage(@RequestParam(defaultValue = "1") Integer current,
                                   @RequestParam(defaultValue = "10") Integer size,
                                   @RequestParam(required = false) String username,
                                   @RequestParam(required = false) String email) {
        Page<User> page = new Page<>(current, size);
        return userService.getUserPage(page, username, email);
    }
}

9. 测试接口

你可以使用 Postman 或其他工具来测试上述接口:

  • 添加用户:发送 POST 请求到http://localhost:8080/users,请求体为 JSON 格式的用户信息。
  • 删除用户:发送 DELETE 请求到http://localhost:8080/users/{id},其中{id}为要删除的用户 ID。
  • 修改用户:发送 PUT 请求到http://localhost:8080/users,请求体为 JSON 格式的用户信息。
  • 查询所有用户:发送 GET 请求到http://localhost:8080/users
  • 多条件分页查询:发送 GET 请求到http://localhost:8080/users/page?current=1&size=10&username=xxx&email=xxx

通过以上步骤,你就可以使用 Spring Boot 整合 MyBatis-Plus 实现用户的添加、删除、修改、查询以及多条件分页查询功能。

分享

详细介绍在Spring Boot中整合MyBatis-Plus的步骤

给出Spring Boot整合MyBatis-Plus实现用户多条件分页查询的代码示例

MyBatis-Plus有哪些常用的注解和功能?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值