精华内容
下载资源
问答
  • java批量删除操作

    千次阅读 2017-03-25 18:28:48
    id ="del" > ..."批量删除错题" , httpMethod = "POST" ) public Dto<Test> del ( @ApiParam ( "错题id" ) @RequestParam String[] ids) { return customService .del(ids) ; }
    <delete id="del">
       DELETE FROM tb_test WHERE id IN
       <foreach collection="array" item="item" index="index" open="(" separator="," close=")">
          #{item}
       </foreach>
    </delete>
    
    
    @RequestMapping("/del")
    @ResponseBody
    @ApiOperation(value = "批量删除错题", httpMethod = "POST")
    public Dto<Test> del(@ApiParam("错题id") @RequestParam String[] ids) {
        return customService.del(ids);
    }

    展开全文
  • Java+Spring框架实现批量删除操作

    千次阅读 2019-03-01 18:36:42
    这里用from表单来接收提交的数据传到controller层来进行批量删除操作,用来显示勾选选项,其中的name属性参数都用同一个,然后再控制层接收的时候回自动封装成一个代表id集合的数组,具体代码如下: &lt;form ...

    效果展示图:

    在这里插入图片描述
    在这里插入图片描述

    代码部分:

    JSP客户端页面部分:
    这里用from表单来接收提交的数据传到controller层来进行批量删除操作,用来显示勾选选项,其中的name属性参数都用同一个,然后再控制层接收的时候回自动封装成一个代表id集合的数组,具体代码如下:

    <form action="delall" method="post">
        <p><a href="/SSM1/addpage">新增数据</a></p>
        <p><input type="submit" value="批量删除"/></p>
        <table border="1">
        	<tr><td>全选<input type="checkbox" value="" name="selectall"></td><td>序号</td><td>姓名</td><td>生日</td><td>性别</td><td>班级</td><td>删除</td><td>修改</td></tr>
        	<!-- ${pageinfo.list}这个是分页工具类封装好的集合 -->
        	<c:forEach items="${pageinfo.list}" var="s" varStatus="i">
        		<!-- varStatus="i"和${i.count}来代表循环的次数,用来代替id序号 -->
        		<tr><td><input type="checkbox" name="sids" value="${s.sid}"></td><td>${i.count}</td><td>${s.sname}</td><td>${s.birthday}</td><td>${s.sex}</td><td>${s.clz.cname}</td>
        		<!-- 删除这里使用的是异步请求,先将a标签的点击事件取消,在添加自己的单击事件 -->
        		<!-- this代表的是当前的这个a标签,后面可以带参数 -->
        		<td><a href="javaScript:void(0)" onclick="del(this,'${s.sid}')">删除</a></td>
        		<td><a href="selectone?sid=${s.sid}">修改</a></td></tr>
        	</c:forEach>
        </table>
        <p>
        	<!-- 使用的是分页工具类,可以在pagehelper网站工具上查看使用 -->
        	<c:if test="${pageinfo.hasPreviousPage}">
        		<a href="show?pageNum=${pageinfo.pageNum-1}">上一页</a>
        	</c:if>
        	<c:if test="${pageinfo.hasNextPage}">
        		<a href="show?pageNum=${pageinfo.pageNum+1}">下一页</a>
        	</c:if>
        </p>
       </form>
    

    javacript部分代码:
    这里用了一个全选的方法来将所有checkbox选项的值改为true实现全选功能
    在完成批量删除操作后从controller层传回响应的参数,这里使用param对象来接收参数并作出相应的提示

    全选<input type="checkbox" value="" name="selectall">
    
     <script type="text/javascript">
        
        /*批量选中的效果*/
    	$('input:checkbox[name="selectall"]').click(function(){
    		if($(this).is(':checked')){
    	        $('input:checkbox').each(function(){
    	    		$(this).prop("checked",true);
    			});
            }else{
               	$('input:checkbox').each(function(){
        			$(this).prop("checked",false);
    			});
            }
    	});   
        
    	/* 在java跳转的时候url中加上参数,在这里用param来接收
                     做响应的操作提示*/
    		var param1 = '${param.b}';
    		if(param1!=''){
    			if(param1==1)
    			alert("批量删除成功");
    		}
    </script>
    

    Controller控制层代码:
    在这里将数组传到service层进行批量删除操作,因为在service层可以做事务控制

    	/**
    	 * 批量删除操作
    	 * @param sids:从web层传来的id数组,就是所勾选的数据
    	 * @return 跳转的时候根据不同情况加上一个任意参数用于在jsp页面接收
    	 */
    	@RequestMapping("delall")
    	public String deleteall(Integer[] sids){
    		if(studentService.deleteAll(sids)){
    			return "redirect:/show?b=1";
    		}else{
    			return "redirect:/show?b=0";
    		}
    	}
    

    service业务逻辑层代码:
    serviceImpl层直接调用dao层的删除方法循环传来的数组进行批量删除就可以,将最终结果在返回给控制层

    @Override
    	public boolean deleteAll(Integer[] sids) {
    		int sum = 0;
    		for(Integer id : sids){
    			int result = studentDao.delete(id);
    			sum += result;
    		}
    		if(sum==sids.length){
    			return true;
    		}
    		return false;
    	}
    

    (参考使用)

    展开全文
  • Java批量操作优化

    2020-02-27 18:52:30
    批量获取 开发中,有时候难免需要用到类似findAll()方法,或者说获取表中所有数据。但是当这个量很大时,一次性从数据库中加载到... * 批量获取任务,删除任务 */ private void cleanTask() { List<String&g...

    批量获取

    开发中,有时候难免需要用到类似findAll()方法,或者说获取表中所有数据。但是当这个量很大时,一次性从数据库中加载到内存中,明显不理智。这时候可以采用批量取的方式,比如batchSize为500。

        /**
         * 批量获取任务,删除任务
         */
        private void cleanTask() {
    
            List<String> projectIds = getAllProjectIds();
    
            if (isNotEmpty(projectIds)) {
    
                int skip = 0;
    
                List<TaskVO> res = null;
    
                do {
                    res = taskService.findAll(skip, batchSize);
    
                    if (res == null || res.isEmpty()) {
                        break;
                    }
    
                    deleteBatchTask(projectIds, res);
    
                    skip = skip + batchSize;
    
                } while (res.size() == batchSize);
            }
        }

    批量删除

    在执行删除操作时,通常我们会foreach遍历着删,但是遍历一次就是与数据库的一次交互。更常见地,每一次删除时,还会有很多相关的级联删除操作,这样更加拉低了页面的相应。有几个地方可以优化:比如采用线程池来执行整个的批量删除操作;比如可以先做假删除,在夜深人静时采用定时任务来删除;再比如,采用批量删除,也就是in语句。这里主要说的也是第三种,但是如果采用in进行批量删除,也需要注意,不能过分信任in的批量,如果数据量过大,一次性in上万条,数据库也扛不住,此时就可以对in再进行批量。

    // 批量删除任务
    Functional.batchExec(taskIds, delIds -> taskDAO.deleteTaskTrue(delIds), batchSize);    
    
        /**
         * 批量删除(真删除)
         *
         * @param taskIds 任务ids
         */
        public void deleteTaskTrue(List<String> taskIds) {
            createDelete().where().in("_id", taskIds).delete();
        }
    public class Functional {
        /**
         * 将集合按指定分批大小进行分批操作
         *
         * @param src
         * @param function
         * @param batchSize
         * @param <K>
         */
        public static <K> void batchExec(List<K> src, Consumer<List<K>> function, int batchSize) {
    
            if (src == null || src.isEmpty()) {
                return;
            }
    
            if (batchSize <= 0) {
                batchSize = 1;
            }
    
            int loopTimes;
    
            if (src.size() % batchSize == 0) {
                loopTimes = src.size() / batchSize;
            } else {
                loopTimes = src.size() / batchSize + 1;
            }
    
            for (int i = 0; i < loopTimes; i++) {
    
                List<K> subList;
    
                if (i == src.size() / batchSize) {
                    subList = src.subList(i * batchSize, src.size());
                } else {
                    subList = src.subList(i * batchSize, (i + 1) * batchSize);
                }
    
                function.accept(subList);
            }
        }
    
        /**
         * 正序排序
         *
         * @param src
         * @param field
         */
        public static void ascSort(List src, String field) {
            sort(src, field, 1);
        }
    
        /**
         * 逆序排序
         *
         * @param src
         * @param field
         */
        public static void descSort(List src, String field) {
            sort(src, field, -1);
        }
    
        private static void sort(List src, String field, int direction) {
    
            if (ValidateUtil.isEmpty(src)) {
                return;
            }
    
            Collections.sort(src, new Comparator<Object>() {
    
                @Override
                public int compare(Object o1, Object o2) {
                    Object value1 = BeanUtil.pojo.getProperty(o1, field);
                    Object value2 = BeanUtil.pojo.getProperty(o2, field);
                    if (value1 != null && value2 != null) {
                        if (value1 instanceof Long) {
                            return ((Long) value1).compareTo((Long) value2) * direction;
                        }
    
                        if (value1 instanceof Integer) {
                            return ((Integer) value1).compareTo((Integer) value2) * direction;
                        }
    
                        if (value1 instanceof Double) {
                            return ((Double) value1).compareTo((Double) value2) * direction;
                        }
    
                        if (value1 instanceof BigDecimal) {
                            return ((BigDecimal) value1).compareTo((BigDecimal) value2) * direction;
                        }
    
                        if (value1 instanceof Date) {
                            return ((Date) value1).compareTo((Date) value2) * direction;
                        }
    
                        if (value1 instanceof String) {
                            return ((String) value1).compareTo((String) value2) * direction;
                        }
                    }
                    return 0;
                }
            });
        }
    
        /**
         * 除重
         *
         * @param src
         * @param <K>
         * @return
         */
        public static <K> List<K> distinct(List<K> src) {
            if (ValidateUtil.isEmpty(src)) {
                return src;
            }
            return new ArrayList<K>(src.stream().collect(Collectors.toSet()));
        }
    }

     

    展开全文
  • 3.多表关联批量删除 首先要明白一点,为什么会有批量这一个概念,无非就是数据太多了,在java端把数据查出来然后在按照100-300的批次进行更新太耗性能了,而且写出来的代码会非常的臃肿,所谓好的实现是用最少的,最...
  • 1、今天产品需求说要做es的数据导出,导出完后删除原有的数据 2、导出数据并跟据ID进行删除 3、上代码 @Override public void delete( List<String> lists) { BulkRequest request = new BulkRequest(); ...

    1、今天产品需求说要做es的数据导出,导出完后删除原有的数据
    2、导出数据并跟据ID进行删除
    3、上代码

    @Override
        public void delete( List<String> lists) {
    
            BulkRequest request = new BulkRequest();
            for (String smsStr : lists) {
                DeleteRequest deleteRequest=new DeleteRequest(ElasticsearchConstant.SMS_BATCH,smsStr);
                request.add(deleteRequest);
    
            }
    
            try {
                client.bulk(request,COMMON_OPTIONS);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    

    注意 ElasticsearchConstant.SMS_BATCH 是你的索引文档名;

    展开全文
  • 批量操作 批量查询 需求: 把D:\JavaSE\CodeLibrary文件夹下的所有的 class 结尾的文件输出在控制台 思路: 1.封装文件路径指向 D:\JavaSE\CodeLibrary 2.获取到目录下所有的文件或者文件夹 3.遍历每一个文件 或者 ...
  • Java做客户端对Elasticsearch服务的增删改查及批量修改操作,代码简洁易懂,思路清晰有注释.详情参考https://blog.csdn.net/linhaiyun_ytdx/article/category/7042758
  • Java实现批量删除前后端源码

    千次阅读 2020-05-10 17:56:04
    value值被设置为删除依据 效果展示 获取所有被选中的 var nums = new Array(); //获取所有被选中的元素的value(),value值被设置为删除依据 $("input[name='del']:checked").each(function(i) { nums.push...
  • java实现批量删除用户,选中删除用户

    千次阅读 2016-11-08 11:06:01
    jsp标签代码: 管理员列表 ID 真是姓名 ${user.id } ${user.userName} ...//删除所选中的管理员 //删除所选中的管理员 function datadel(){ layer.confir
  • java技术--mysql批量删除大量数据

    千次阅读 2019-09-18 16:04:45
    1.假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条 2.直接执行 DELETE FROM syslogs WHERE statusid=1 会发现删除失败,因为lock wait timeout ...
  • 批量删除源代码

    2012-04-24 09:00:14
    批量删除,可全选 可反选..具体操作可以从代码中看出。
  • 1.接受参数 String phone_id[] = request.getParameterValues("phoneInfoID"); 2.数组转换为List List listid = Arrays.asList(phone_id);...StringBuffer phone_ids = new StringBuffer();... for(int
  • Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...
  • 记录Java对数据库进行事务处理(删除操作),在开始之前先来看下面这样的一个页面图:  上面这张图片显示的是从数据库中查询出的用户信息,信息中进行了分页处理,然后每行的前面提供了一个复选按钮,可以选中多...
  • java批量删除,前后台操作

    千次阅读 2015-04-14 09:23:48
    java批量删除,复选框,json数据,ajax回调
  • java根据id批量修改/删除

    千次阅读 2019-04-10 15:23:50
    https://blog.csdn.net/qq_37557563/article/details/86573958 前台 function update() { var arr = $("input[name='id']"); var Arr = []; ...//将需要批量修改的id放到一个数组里面去传到...
  • Java EE 如何实现批量删除功能

    千次阅读 2018-04-17 22:26:32
    在for循环语句中依次执行单个删除的操作,最后达到批量删除的效果。那么怎么才能实现批量删除呢?第一步 写一个checkbox,也就是复选框选中复选框表示我想要删除这一行的内容,在数据库中,删除一条记录的话首先得...
  • Java批量操作文件小结

    千次阅读 2019-06-09 12:43:15
    例:删除指定文件夹中的所有文件:(批量删除文件是文件操作经常用到的) 先创建一个文件批量管理工具类,关键代码如下 //删除文件夹及其中内容 public void deleteDictionary(File fileIn) { ...
  • Hibernate完全以面向对象的方式来操作数据库,当程序里以面向对象的方式操作持久化对象时,将被自动转换为对数据库的操作。例如我们调用Session的delete()方法,来删除持久化对象,Hibernate将负责删除对应的数据...
  • 思路:使用模糊获取相关的key,然后根据key做更新删除操作 伪代码   String keys="test:group:user*"; Set<String> keysList = stringRedisTemplate.keys(keys); keysList.forEach(i->{ String key = ...
  • Elasticsearch在2.0以前版本,删除操作有两种方式,一种是通过id来进行删除,但是这种方式一般不常用,因为id不容易得到;另一种方式是通过先查询操作,然后删除,也就是通过client.prepareDeleteByQuery这种方式来...
  • Java调用Zip类批量压缩多个文件,此前有一个是压缩单个文件,也可参考,相关代码中可找到此源码。  public class ZipDemo extends JFrame{  JFileChooser fileChooser; //文件选择器  JList fileList; //待...
  • FastDFS文件操作-java

    2018-12-17 17:23:32
    FastDFS文件操作-java,pom.xml引入依赖 <!-- fastDFS依赖就一个 --> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java <version>1.27.0.0 </dependencies>
  • MongoDB 通过 Java 代码 批量操作

    千次阅读 2018-09-17 17:00:01
    MongoDB提供了一种称为 BulkWrite(块)操作方式,数据不会被立即被持久化到数据库中,而是等待程序调度,确定合适的时间持久化到数据库中,其实就是批量操作。 API :com.mongodb.client.MongoCollect...
  • 解决redis集群模式下,jedis不能批量操作问题..............................................................................
  • ElasticSearch在Java中实现批量操作

    万次阅读 2019-04-16 16:16:53
    ElasticSearch在Java中实现批量操作 适用范围ElasticSearch6.x 如果是ElasticSearch7或以上版本情转到如下链接 REST高级客户端-DocumentApi:https://blog.csdn.net/u014646662/article/details/96473156 REST...
  • 一、JDBC的批量插入 一、JDBC的批量更新 一、JDBC的批量删除 一、JDBC的批量修改

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,657
精华内容 33,062
关键字:

java批量删除操作

java 订阅