mybatis plus批量删除(如何实现springmvc+mybatis用多选框批量删除的功能Java代码)

本文目录
如何实现springmvc+mybatis用多选框批量删除的功能Java代码
我会将在编写过程中出现的一些小知识点也进行总结概括的。
此项目基于的框架是:springmvc+mybatis
(1)controller
/**
* 批量删除 batch
*/
@RequestMapping("/batchDeletes")
@ResponseBody
public void batchDeletes(HttpServletRequest request,HttpServletResponse response){
String items = request.getParameter("delitems");
List《String》 delList = new ArrayList《String》();
String strs = items.split(",");
for (String str : strs) {
delList.add(str);
}
userService.batchDeletes(delList);
}
代码思路:
从前台勾选的选择框中传过来的值用“,”分开,然后遍历存放到delList集合里面,直接删delList集合里面的所有字符串。
(2)service
/**
* 批量删除
*/
void batchDeletes(List delList);
(3)impl
/**
* 批量删除
*/
@Override
public void batchDeletes(List delList) {
userMapper.batchDeletes(delList);
}
(4)mapper
/**
* 批量删除
*/
void batchDeletes(List delList);
(5)mapper.xml
《!--批量删除 --》
《delete id="batchDeletes" parameterType="java.util.List"》
DELETE FROM tp_user where uname in
《foreach collection="list" index="index" item="item" open="(" separator="," close=")"》
#{item}
《/foreach》
《/delete》
如上的mybatis指代的意思如下:
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名. (直接找到对应的delList集合里面的所有元素,item="item"中的item(后一个)必须与#{item} 中的item一致)
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束.
前台代码:
user_list.jsp
//全选
function selectAll(){
if ($("#SelectAll").is(":checked")) {
$(":checkbox").prop("checked", true);//所有选择框都选中
} else {
$(":checkbox").prop("checked", false);
}
}
//批量删除
function batchDeletes(){
//判断至少写了一项
var checkedNum = $("input:checked").length;
if(checkedNum==0){
alert("请至少选择一项!");
return false;
}
if(confirm("确定删除所选项目?")){
var checkedList = new Array();
$("input:checked").each(function(){
checkedList.push($(this).val());
});
$.ajax({
type:"POST",
url:"web/user/batchDeletes.action",
data:{"delitems":checkedList.toString()},
datatype:"html",
success:function(data){
$(":checkbox").attr("checked",false);
art.dialog.tips(’删除成功!’);
setTimeout("location.reload()",1000);//页面刷新
},
error:function(data){
art.dialog.tips(’删除失败!’);
}
});
}
}
《table class="tb_list"》
《tr》
《td align="center"》《input type="checkbox" id="SelectAll"
onclick="selectAll();" /》 全选《/td》
《th》序号《/th》
《/tr》
《c:forEach items="${page.list }" var="items" varStatus="idx"》
《tr class="row_${idx.count%2+1}"》
《td style="display:none"》${batch.id}《/td》
《td align="center"》《input type="checkbox" id="subcheck"
name="subcheck" value="${items.UNAME }" /》
《/td》
《td》${page.onePageCount*(page.currentPage-1)+idx.count }《/td》
《tr》
《/table》
备注:此代码我传值的主键是用uname来删除的,实际应该用id作为主键,因为id的unique
,uname若重名,则就会出现bug,相信大家都明白,就不再过多解释了。
mybatis批量删除foreach报错
介绍一种比较简单的批量操作,一个批量添加一个批量删除:
Java代码:
public class User implements Serializable {
private Integer id;
private String name;
private String password;
//setter and getter
}
对应的Mapper.xml
《ResultMap type="User" id="UserResultMap"》
《id column="id" property="id" jdbcType="Integer"/》
《result column="name" property="name" jdbcType="VARCHAR" /》
《result column="password" property="password" jdbcType="VARCHAR" /》
《/ResultMap》
Mapper.xml中对应的批量插入方法:(传入的是一个List集合)
《insert id="add" useGeneratedKeys="true" parameterType="java.util.List"》
《selectKey resultType="long" keyProperty="id" order="AFTER"》
select last_insert_id()
《/selectKey》
insert into t_user (name,password) values
《foreach collection="list" item="item" index="index" separator=","》
(#{item.name},#{item.password})
《/foreach》
《/insert》
Mapper.xml中对应的批量删除的方法:(传入的是一个string字符串,ids)
《delete
id="delete" parameterType="java.lang.String"》
delete from t_user where id in (“${_param}”);($好像是#号,记不太清了,可以试下)
《/delete》
OK!
mybatis+spring mvc如何批量删除
提供一种解决方法,如果没有更好的就用下面这个吧:
前端js用array存储id后 array.toString返回的是1,2,3(数字中间有英文逗号)这样的数据,传到后台后
delete from xxx where id in ();括号里不就正好是这样格式吗?
mybatis怎么批量删除和添加
批量增加
《insert id="batchSaveUser"》
insert into t_user (user_name,sex) values
《!-- 动态SQL之foreach的用法 --》
《!-- collection="users" 用于指定循环集合的名称,如果接口中并未指定参数别名,那么默认就是list
item="u" 用于指定每次循环后的对象的别名
separator="," 用于指定每次循环后之间的分割符--》
《foreach collection="users" item="u" separator=","》
(#{u.userName},#{u.sex})
《/foreach》
《/insert》
批量删除
《delete id="batchDeleteUser"》
delete from t_user where id in (
《foreach collection="ids" item="id" separator=","》
#{id}
《/foreach》
)
《/delete》

更多文章:
easyui调用bartendee模板(EXCEL数据库调用BarTender10.1问题)
2026年7月18日 14:45
matlab sym(大家好!matlab中syms是什么意思)
2026年3月27日 04:15
technology各种词性(technique与technology的区别)
2026年3月28日 22:00
facilitate英语怎么读(促成的英语翻译 促成用英语怎么说)
2026年2月28日 23:30
vue2diff算法(简单几句话,知道什么是回流重绘、vue虚拟dom、diff算法和key)
2026年2月26日 10:15
column在sql是什么意思(sql语句中的information_schema.COLUMNS 是什么意思呢)
2026年8月17日 16:15
powerpoint模板(如何制作PowerPoint的模板)
2025年7月6日 00:15
optimistic怎么读英语(optimistic怎么读)
2026年3月8日 11:45
html中生成滚动条或文字(html如何实现滚动文字和音乐)
2026年2月25日 20:45
conventionally a phoneme(conventionally是什么意思)
2026年2月16日 02:45
css下拉菜单颜色(如何用CSS把下拉菜单背景色弄成透明而上面的文字不透明)
2025年6月3日 05:45
html5支持的标签(html5 新加的标签元素例如:<header><section><footer>解惑)
2025年11月17日 20:30
dom4j生成xml特殊字符不转义(JAVA dom4j怎样将双引号 写入XML时为“ 表示)
2025年12月14日 22:45
headerstyles设表头样式(word怎么绘制表头斜线并打字)
2026年8月7日 22:15












