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. 编写前端页面
创建前端页面,用于用户操作