java - 如何在导出到数据库 spring 时从 Excel 文件中删除重复项

标签 java spring hibernate

我正在从事一个项目,该项目必须将数据从 Excel 文件导入和导出到数据库等。我必须从数据库获取数据,然后。但是如何根据 id、电话号码、用户名检查 excel 文件中的数据是否不重复。 这是读取excel文件的方法

@Override
public List<Contact> read(String FilePath) throws IOException {
    List<Contact> contactList = new ArrayList<>();
    FileInputStream inputStream = new FileInputStream(new File(FilePath));

    HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
    HSSFSheet firstSheet = workbook.getSheetAt(0);
    Iterator<Row> iterator = firstSheet.iterator();
    iterator.next();
    while (iterator.hasNext()) {

        Row nextRow = iterator.next();
        Iterator<Cell> cellIterator = nextRow.cellIterator();
        Contact contact = new Contact();
        while (cellIterator.hasNext()) {
            Cell nextCell = cellIterator.next();
            int columnIndex = nextCell.getColumnIndex();
            switch (columnIndex) {
            case 0:
                // contact.setId((String) nextRow.getCell(nextCell));
                contact.setId((long) (nextCell.getNumericCellValue()));
                break;

            case 1:
                contact.setFirstName(nextCell.getStringCellValue());
                break;
            case 2:
                contact.setLastName(nextCell.getStringCellValue());
                break;
            case 3:
                contact.setPhoneNumber(nextCell.getStringCellValue());
                break;
            case 4:
                contact.setAddress(nextCell.getStringCellValue());
                break;
            case 5:
                contact.setCity(nextCell.getStringCellValue());
                break;
            case 6:
                contact.setEmail(nextCell.getStringCellValue());
                break;
            case 7:
                contact.setZipCode((int) (nextCell.getNumericCellValue()));
                break;
            }

        }
        contactList.add(contact);
    }

    workbook.close();
    inputStream.close();

    return contactList;
}

最佳答案

您应该覆盖 Contact 中的 equals 方法并执行

if(!contactList.contains(contact))
{
 contactList.add(contact);
}

关于java - 如何在导出到数据库 spring 时从 Excel 文件中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49532742/

相关文章:

Java 内联 int 交换。为什么这只适用于 Java

java - @Scheduled方法无法使用存储库

java - H2控制台不显示

java - Spring Boot 不起作用?

java - 将相同的对象添加到 Set<E>

java - 如何使用循环从 hashmap 中获取值

java - 如何访问String池的对象

java - 即使它正确执行,但在 bean 定义中使用作用域时,它会给出警告错误

Spring JPA 存储库 findBy IN 列表 - 允许 null

java - 如何对复杂类型的 Hibernate 搜索结果进行排序