sql去重

package com.wuyj.sql;

import org.apache.poi.hssf.usermodel.*;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;

/**
 * @author: sx_wuy
 * @time: 2020/4/27 19:59
 */
public class Sql {

    public static void main(String[] args) {
        try {
            /**
             * listA和listB是你两条sql的查询结果
             * 你只用负责把两条sql语句的结果分别放入这两个集合中就可以了
             * 现在的代码只是B中存在,A中不存在的数据。
             */
            ArrayList<PageData> listA = new ArrayList<PageData>();
            ArrayList<PageData> listB = new ArrayList<PageData>();
            // TODO: TODO之间是测试代码,你在使用的时候记得删掉
            PageData pageData1 = new PageData("1", "1111", "aaa");
            PageData pageData2 = new PageData("1", "zhangsan", "aaa");
            PageData pageData3 = new PageData("1", "san", "1111");
            PageData pageData4 = new PageData("1", "san", "aaa");
            PageData pageData5 = new PageData("1", "liu", "aaa");
            PageData pageData6 = new PageData("1", "liu", "aaa");
            PageData pageData7 = new PageData("1", "zan", "aaa");
            PageData pageData8 = new PageData("1", "zan", "aaa");
            listA.add(pageData1);
            listB.add(pageData2);
            listA.add(pageData3);
            listB.add(pageData4);
            listA.add(pageData5);
            listB.add(pageData6);
            listA.add(pageData7);
            listB.add(pageData8);
            // TODO: TODO之间是测试代码,你在使用的时候记得删掉
            LinkedHashSet<PageData> result = getResult(listA, listB);
            export(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static LinkedHashSet<PageData>  getResult(List<PageData> listA, List<PageData> listB) {
        //生成A里面有的数据B中没有的
        LinkedHashSet<PageData> result = new LinkedHashSet<PageData>();
        result.addAll(listB);
        for (PageData a : listA) {
            for (PageData b : listB) {
               if (a.getUsername().equals(b.getUsername()) &&
                       a.getId().equals(b.getId()) &&
                               a.getPassword().equals(b.getPassword())){
                   result.remove(b);
               }
            }
        }
        return result;
    }


    public static HSSFWorkbook getHSSFWorkbook(String sheetName, String[] title, String[][] values, HSSFWorkbook wb){

        // 第一步,创建一个HSSFWorkbook,对应一个Excel文件
        if(wb == null){
            wb = new HSSFWorkbook();
        }

        // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);

        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
        HSSFRow row = sheet.createRow(0);

        // 第四步,创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

        //声明列对象
        HSSFCell cell = null;

        //创建标题
        for(int i=0;i<title.length;i++){
            cell = row.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }

        //创建内容
        for(int i=0;i<values.length;i++){
            row = sheet.createRow(i + 1);
            for(int j=0;j<values[i].length;j++){
                //将内容按顺序赋给对应的列对象
                row.createCell(j).setCellValue(values[i][j]);
            }
        }
        return wb;
    }
    public static void export(LinkedHashSet<PageData> list) throws Exception {
        //excel标题
        String[] title = {"用户ID", "用户名称", "用户密码", "用户手机","创建时间"};

        //excel文件名
        String fileName = "用户信息表" + System.currentTimeMillis() + ".xls";

        //sheet名
        String sheetName = "用户信息表";

        String [][] content = new String[list.size()][5];
        int i = 0;
        for (PageData pageData : list) {
            content[i] = new String[title.length];
            content[i][0] = pageData.getId().toString();
            content[i][1] = pageData.getUsername();
            content[i][2] = pageData.getPassword();
            content[i][3] = pageData.getPassword();
            content[i][4] = pageData.getPassword();
            i++;
        }

        //创建HSSFWorkbook
        //输出路径
        FileOutputStream output=new FileOutputStream("d:\\workbook.xls");
        HSSFWorkbook wb = getHSSFWorkbook(sheetName, title, content, null);
        wb.write(output);
        output.flush();
    }
}

 

 

pom文件坐标

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.0.1</version>
    </dependency>

</dependencies>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值