springboot + ajax + mybatis 实现批量删除
实现思路:
1. checkbox全选获取批量删除的id数组
2. ajax以字符串的形式将id数组传给控制器
3. 控制器将字符串分割成List数组作为参数传给mapper
具体代码:
1. 前端代码
<table>
<thead>
<tr>
<th>#</th>
<th>id</th>
<th>文件名</th>
<th>文件类型</th>
<th>上传时间</th>
<th>上传用户</th>
<th>文件大小</th>
</tr>
</thead>
<tbody>
<tr th:each="resource:${resources}">
<td>
<input type="checkbox" name="checkId" id="checkId" th:value="${resource.id}"/>
</td>
<td th:text="${resource.id}">Row 1 Data 1</td>
<td th:text="${resource.fileName}">Row 1 Data 2</td>
<td th:text="${resource.fileType}">Row 1 Data 1</td>
<td th:text="${resource.fileTime}">Row 1 Data 2</td>
<td th:text="${resource.fileUploader}">Row 1 Data 1</td>
<td th:text="${resource.fileSize}">Row 1 Data 2</td>
</tr>
</tbody>
</table><br>
<input type="checkbox" name="selectAll" id="selectAll" onclick="selectAll(this);">全选 
<button type="button" onclick="deleteLogic();">批量删除</button>
2. js代码
/**
* checkbox全选/全不全
* @param checkbox
*/
function selectAll(checkbox) {
$('input[name="checkId"]').prop('checked', $(checkbox).prop('checked'));
} /**
* 批量删除
*/
function deleteLogic() { var checkNum = $("input[name='checkId']:checked").length; if(checkNum==0){
alert("至少选择一项");
return;
} if(confirm("确定要删除吗?")){
var checkList = new Array();
$("input[name='checkId']:checked").each(function () {
checkList.push($(this).val())
});
} $.ajax({
url:"/deleteAll",
type:"post",
data:{
checkList:checkList.toString()
},
datatype:"json",
success:function (data) {
location.reload();
alert("删除成功!")
},
error:function (msg) {
alert("删除失败!")
}
})
}
3. Controller代码
@PostMapping("/deleteAll")
@ResponseBody
public String deleteAll(String checkList){
System.out.println("==>"+checkList);
String[] strs = checkList.split(",");
List<Integer> ids = new ArrayList<>();
for(String str:strs){
ids.add(Integer.parseInt(str));
}
resourcesService.deleteAll(ids);
return "success";
}
4. mapper.xml代码
<delete id="deleteAll" parameterType="list">
delete from resources where id in
<foreach collection="list" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
springboot + ajax + mybatis 实现批量删除的更多相关文章
- 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 springmvc批量删除 2最新
service层: @Override public void batchDeletes(List list) { creditDao.batchDeletes(list); } 控制层control ...
- 使用Ajax实现的批量删除操作(C#)
今天做了一个简单的批量删除操作,虽然简单,但是很多问题出现,终究还是技术不够熟练. 现在在这里跟大家分享一下.仅供学习... 1.在前台获取用户点击的信息id,把这里id封装到一个数组里面:(rows ...
- mybatis的批量删除操作
需求描述:将符合某条件的几条记录删除 解决思路:对于多个id,可以使用sql关键词 in ,只要满足数据库的id在你的id集合或者list中,就删除,从而实现批量删除.循环delete方法是在是low ...
- Mybatis实现批量删除
知识点:当传入参数为数组时,XX.xml文件中,标签为collection属性 参考博客:https://blog.csdn.net/javaee_sunny/article/details/5251 ...
- mybatis postgresql 批量删除
一.需求介绍 前端是一个列表页面,列表可以进行复选框的选择,后台进行关联表数据的删除. 二.框架介绍 springboot+mybatis 数据库用的postgresql 三.具体代码(前端js) 1 ...
- Mybatis批量删除之Error code 1064, SQL state 42000;
(一)小小的一次记载. (二):最近的项目都是使用MyBatis,批量新增自己都会写了,但是一次批量删除可把我给折腾了下,写法网上都有,但是照着做就是不行,最后问公司的人,问网友才得到答案,那就是jd ...
随机推荐
- iOS 几种定时器
//第一种 每一秒执行一次(重复性) double delayInSeconds = 1.0; timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_ ...
- eclipse中server name选项变灰
删除workspace中.metadata\.plugins\org.eclipse.core.runtime\.settings目录下 org.eclipse.wst.server.core.pre ...
- P1493 分梨子
P1493 分梨子 题目描述 Finley家的院子里有棵梨树,最近收获了许多梨子.于是,Finley决定挑出一些梨子,分给幼稚园的宝宝们.可是梨子大小味道都不太一样,一定要尽量挑选那些差不多的梨子分给 ...
- Peer模式的多线程程序例子
Peer模式的多线程程序例子 程序的模型大概是这样的.有一个master(),用来分发任务.有N个多线程的slave用来处理任务. 主程序里可以这样调用: 可以看出,上面这段程序还是依赖于Proces ...
- 二:unittest框架配合selenium之xpath定位
刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的 ...
- eclipse的快捷键(常用)
ctrl+shift+r 全局查找java类 ctrl +h 全局查找包含某某内容的文件位置 ctrl +alt+h 右击方法名 选择open call hierarchy
- python sort 和sorted排序
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list. ...
- 戏说 .NET GDI+系列学习教程(二、Graphics类的方法)
一.DrawBezier 画立体的贝尔塞曲线 private void frmGraphics_Paint(object sender, PaintEventArgs e) { Graphics g ...
- ThreeJS模型展示为黑色,模型出不来
选取gltf格式时,出现模型为黑色,模型出不来 原因: 我们设计部可能是用maya或者3dmax去做:在模型导出时,没有gltf格式:如果maya或者3dmax导出obj然后导进blender,再导出 ...
- testNG官方文档翻译-1 简介
官方文档链接http://testng.org/doc/documentation-main.html 简介 TestNG是一个被设计用来简化广泛的测试需求的测试框架,它既可应用于单元测试(测试一个独 ...