Java MyBatis Plus通过id集合批量删除数据实现教程

一、整体流程

下面是使用 Java MyBatis Plus 实现通过 id 集合批量删除数据的整体流程:

步骤 描述
1. 定义实体类和对应的Mapper接口 创建实体类并使用注解标识数据库表,同时创建对应的Mapper接口用于数据库操作。
2. 创建XML映射文件 在XML映射文件中编写SQL语句,包括查询、插入、更新和删除等操作。
3. 配置MyBatis Plus的Mapper接口扫描和XML映射文件扫描 在配置文件中进行配置,使MyBatis Plus能够扫描到我们创建的Mapper接口和XML映射文件。
4. 编写Service层接口和实现类 创建Service层接口和实现类,用于调用Mapper接口中的方法。
5. 在Controller层调用Service层方法 在Controller层中调用Service层中的方法,实现业务逻辑。
6. 编写前端页面 创建前端页面,用于用户操作交互。
7. 添加删除按钮事件 在前端页面中添加删除按钮的事件,通过Ajax请求后台接口进行数据删除。
8. 处理删除请求 在Controller层中处理删除请求,调用Service层的删除方法进行数据删除。

二、具体步骤及代码实现

1. 定义实体类和对应的Mapper接口

创建一个实体类(示例为User)并使用注解标识数据库表,同时创建对应的Mapper接口用于数据库操作。

实体类 User.java:

import com.baomidou.mybatisplus.annotation.TableName;

@TableName("user")
public class User {
    private Long id;
    private String username;
    // 其他属性和对应的 getter/setter 方法
}

Mapper 接口 UserMapper.java:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

public interface UserMapper extends BaseMapper<User> {
}

2. 创建XML映射文件

在 XML 映射文件中编写 SQL 语句,包括查询、插入、更新和删除等操作。

UserMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "
<mapper namespace="com.example.mapper.UserMapper">
    <!-- 其他 SQL 语句 -->

    <!-- 批量删除 -->
    <delete id="deleteBatchIds" parameterType="java.util.List">
        DELETE FROM user WHERE id IN
        <foreach collection="list" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </delete>
</mapper>

3. 配置MyBatis Plus的Mapper接口扫描和XML映射文件扫描

在配置文件(如 application.properties)中进行配置,使 MyBatis Plus 能够扫描到我们创建的 Mapper 接口和 XML 映射文件。

# MyBatis Plus 配置
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.entity

4. 编写Service层接口和实现类

创建 Service 层接口和实现类,用于调用 Mapper 接口中的方法。

UserService.java:

public interface UserService {
    void deleteBatchIds(List<Long> ids);
}

UserServiceImpl.java:

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public void deleteBatchIds(List<Long> ids) {
        userMapper.deleteBatchIds(ids);
    }
}

5. 在Controller层调用Service层方法

在 Controller 层中调用 Service 层中的方法,实现业务逻辑。

UserController.java:

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/delete")
    public String deleteBatchIds(@RequestParam("ids") List<Long> ids) {
        userService.deleteBatchIds(ids);
        return "success";
    }
}

6. 编写前端页面

创建前端页面,用于用户操作