Java MyBatis 删除 使用 foreach传递 List批量删除
1. 相关数据表
CREATE DATABASE `test` DEFAULT CHARSET utf8;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`memo` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
2. User.java
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 8755803182642361875L;
private Long id;
private String name;
private String memo;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
}
3. UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.web3.UserMapper">
<!-- 删除 -->
<delete id="delete" parameterType="java.lang.Long">
DELETE FROM
`user`
WHERE `id`=#{id}
</delete>
<!-- 通过传递 List参数 SQL IN条件删除 -->
<delete id="delete2" parameterType="java.util.List">
DELETE FROM
`user`
WHERE `id` IN
<foreach item="item" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
</mapper>
4. DAO(Data Access Object)数据访问接口 UserDao.java和实现类 UserDaoImpl.java
import com.test.web3.entity.User;
import java.util.List;
public interface UserDao {
void delete(final Long id);
void delete(final List<Long> ids);
}
import com.test.web3.entity.User;
import com.test.web3.dao.UserDao;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SqlSession sqlSession;
static final String MAPPER = "com.test.web3.UserMapper.";
@Override
public void delete(final Long id) {
sqlSession.delete(MAPPER + "delete", id);
}
@Override
public void delete(final List<Long> ids) {
sqlSession.delete(MAPPER + "delete2", ids);
}
}
5. UserController.java(入口)
import com.test.web3.dao.OrderDao;
import com.test.web3.dao.UserDao;
import com.test.web3.entity.Order;
import com.test.web3.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@Controller
public class UserController {
@Autowired
private UserDao userDao;
@RequestMapping(value = "/deleteUser1", method = RequestMethod.GET)
public @ResponseBody Map<String, String> deleteUser1() {
/**
* 删除编号: 1 的用户
* */
userDao.delete(1L);
Map<String, String> result = new HashMap<>();
result.put("message", "删除成功!");
return result;
}
@RequestMapping(value = "/deleteUser2", method = RequestMethod.GET)
public @ResponseBody Map<String, String> deleteUser2() {
/**
* 删除编号: [2,3] 的用户
* */
final List<Long> ids = Arrays.asList(2L, 3L);
userDao.delete(ids);
Map<String, String> result = new HashMap<>();
result.put("message", "删除成功!");
return result;
}
}
如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!