zoukankan      html  css  js  c++  java
  • java切分查询数据库表

    在实际应用中,我经常用到遇到根据单号查询,单号又是批量如1000个单号,直接1000个in子查询是不行的,子查询是用上限的。如果表中数据达到上百万以上。即使有单号字段有索引查询也是很慢。这时可以用切分。把1000个单号切分成,每300个去查询。这样会快很多。下面是demo。

     1 /**
     2      * 准备工作,插入数据,100000条记录。
     3      */
     4     @Test
     5     public void test11() {
     6         for (int i = 0; i < 100000; i++) {
     7             UserInfo userInfo = new UserInfo();
     8             //生成随机数单号(1到100000)。
     9             Random random = new Random();
    10             int max = 100000;
    11             int min = 1;
    12             int s = random.nextInt(max) % (max - min + 1) + min;
    13 
    14             userInfo.setAge(random.nextInt(90) + 10);
    15             userInfo.setName("张三" + i);
    16             userInfo.setBillCode("" + s);
    17             userInfoMapper.insertSelective(userInfo);
    18         }
    19     }
    20 
    21     /**
    22      * 查询数据,如查询1000个单号,每300个拆分。最后把结果集合并。
    23      */
    24     @Test
    25     public void test12() {
    26         //结果集
    27         List<UserInfo> result=Lists.newArrayList();
    28         List<String> listSearch = Lists.newArrayList();
    29         for (int i = 1; i <= 1000; i++) {
    30             listSearch.add(i+"");
    31         }
    32         //按每300个拆分。只需查询3次数据库,用in查询。
    33         List<List<String>> listOne = Lists.partition(listSearch, 300);
    34         for (List<String> one : listOne) {
    35             UserInfoExample example=new UserInfoExample();
    36             example.createCriteria().andBillCodeIn(one);
    37             List<UserInfo> oneUserInfo= userInfoMapper.selectByExample(example);
    38             result.addAll(oneUserInfo);
    39         }
    40         //输出
    41         for(UserInfo userInfo:result){
    42             System.out.println("显示:"+JSON.toJSONString(userInfo));
    43         }
    44     }

     输出:

    源码下载地址:

    链接:https://pan.baidu.com/s/1hFq9DefyFMKgrk06iJylXw
    提取码:fx4o

      

  • 相关阅读:
    第一个C#程序
    定位网页元素
    盒子模型
    浮动
    css3美化网页元素
    html css3
    java表单基础
    表单
    html5基础
    java程序题目解析
  • 原文地址:https://www.cnblogs.com/xiaozw/p/11286816.html
Copyright © 2011-2022 走看看