mybatis postgresql 批量删除
一、需求介绍
前端是一个列表页面,列表可以进行复选框的选择,后台进行关联表数据的删除。
二、框架介绍
springboot+mybatis 数据库用的postgresql
三、具体代码(前端js)
1、前端涉及到的代码
//判断选中状态
var ids =""; $(".checkbox").each(function () {
if($(this).is(':checked'))
ids +=$(this).val() + ",";
});
ids = ids.slice(0,ids.length-1);
//删除
$.ajax({
cache: false,
type: "post",
dataType:'json',
data:{
id:ids,
},
2、逻辑处理层
Map<String, Object> m = getMaps(req);
log.info("|" + m + "|");
// 获取选中的id
String ids=m.get("id").toString();
//将获取到的选中的列表封装在list中
List<String> list = new ArrayList<String>();
String[] stIds = ids.split(",");
for (String value : stIds){
list.add(value);
}
int row = knowledgeDao.deleteById(list);
3、dao层处理
这个仔细测试发现,只是删除了(USING前)file_info 表中的数据,主表数据并没有删除
@Delete("<script>" +
"delete from file_info f USING resource_info k WHERE f.id = k.file_id and k.id in " +
" <foreach collection=\"list\" open=\"(\" close=\")\" separator=\",\" item=\"ids\">#{ids}</foreach>;" +
"</script>")
int deleteById(List<String> ids);
/**
* 删除选择的文件信息 先删除字表数据,再删除主表数据,多个sql实现,目前没发现更好的办法
* * @return
*/
@Delete("<script>" +
"delete from file_info f USING knowledge_info k WHERE f.id = k.file_id and k.id in " +
" <foreach collection=\"list\" open=\"(\" close=\")\" separator=\",\" item=\"ids\">#{ids}</foreach>;" +
" delete from knowledge_info WHERE id in " +
" <foreach collection=\"list\" open=\"(\" close=\")\" separator=\",\" item=\"ids\">#{ids}</foreach>;"+
"</script>")
int deleteById(List<String> ids);
mybatis postgresql 批量删除的更多相关文章
- Mybatis实现批量删除数据
Mybatis实现批量删除操作 学习内容: 1. 使用 2. 代码实现 2.1 UserMapper.java 接口 2.2 UserMapper.xml 总结: 学习内容: 1. 使用 这里通过动态 ...
- mybatis的批量删除
公司工程用的是Mybatis的example的类,自动生成了对数据库的操作,批量操作的今天用到了,两种方式,一种需要拓展它生成的类,另一种自带的. 批量删除的id是以集合List传递 id以List& ...
- (后端)Mybatis实现批量删除操作(转)
原文地址:https://blog.csdn.net/javaee_sunny/article/details/52511842 一. 这里主要考虑两种参数类型:数组或者集合. 而这点区别主要体现在E ...
- mybatis的批量删除操作
需求描述:将符合某条件的几条记录删除 解决思路:对于多个id,可以使用sql关键词 in ,只要满足数据库的id在你的id集合或者list中,就删除,从而实现批量删除.循环delete方法是在是low ...
- Mybatis实现批量删除
知识点:当传入参数为数组时,XX.xml文件中,标签为collection属性 参考博客:https://blog.csdn.net/javaee_sunny/article/details/5251 ...
- mybatis springmvc批量删除 2最新
service层: @Override public void batchDeletes(List list) { creditDao.batchDeletes(list); } 控制层control ...
- postgresql批量删除表
CREATE FUNCTION del_ora_table() RETURNS void AS $$ DECLARE tmp ); DECLARE names CURSOR FOR select ta ...
- springboot + ajax + mybatis 实现批量删除
实现思路: 1. checkbox全选获取批量删除的id数组 2. ajax以字符串的形式将id数组传给控制器 3. 控制器将字符串分割成List数组作为参数传给mapper 具体代码: 1. 前端代 ...
- Mybatis批量删除之Error code 1064, SQL state 42000;
(一)小小的一次记载. (二):最近的项目都是使用MyBatis,批量新增自己都会写了,但是一次批量删除可把我给折腾了下,写法网上都有,但是照着做就是不行,最后问公司的人,问网友才得到答案,那就是jd ...
随机推荐
- 异想家Eclipse的偏好配置
1.汉化 http://www.eclipse.org/babel/downloads.php 找到Babel Language Pack Zips,下面选自己版本点进去,找到如下类似的中文包: Ba ...
- 《即时消息技术剖析与实战》学习笔记9——IM系统如何支持消息的多终端漫游
一.什么是多终端漫游 多终端漫游是指:用户在任意一个设备登录后,都能获取到历史的聊天记录.如:QQ 默认漫游 7 天的聊天记录,开通 VIP 会员可漫游 30 天,开通 SVIP 会员可漫游 2 年. ...
- Spring Boot定义系统启动任务的两种方式
Spring Boot定义系统启动任务的两种方式 概述 如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web ...
- Ubuntu安装openjdk8
sudo apt-get update sudo apt-get install openjdk-8-jdk 通过 which java 找到java安装路径 添加环境变量 sudo vim ~/.b ...
- e.detail.value 获取input的值
inputId(e) { this.setData({ inputId: e.detail.value }) },
- .Net Core初识以及启动配置
.net程序员为什么要学习.net core .Net Core 是.Net的未来,微软在19年 5月已经明确说明,未来只有.Net 5(=.NET Core vNext),.Net 5是.net c ...
- Message: 'chromedriver' executable needs to be available in the path.
环境:windows10 python:3.7.3 已经把 executable.exe 添加到了环境变量中,但还是会提示以上错误. 解决办法: from selenium import webdri ...
- centos最小化安装时网络配置
查看网卡: ip addr 修改网络配置文件 vi /etc/sysconfig/network-scripts/ifcfg-enp33 BOOTPROTO=dhcp ONBOOT=yes 重启网络服 ...
- python中的变量和字符串
一.变量 1.python变量 *变量用于存储某个或某些特定的值,它与一个特定标识符相关联,该标识符称为变量名称.变量名指向存储在内存中的值.在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解 ...
- java.lang.NullPointerException at org.apache.jsp.**_jsp.jspInit(**_jsp.java)tomcat启动异常解决方法
今天遇到的其他一个问题就是,启动tomcat时,报:java.lang.NullPointerException at org.apache.jsp.**_jsp.jspInit(index_jsp. ...