Java MyBatis 删除 使用 foreach传递 List批量删除 亲测

28 篇文章 0 订阅
3 篇文章 0 订阅

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;
    }
    
}

如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值