Java 如何判断导入表格某列是否有重复数据

本文由广州疯狂软件Java培训中心为你整理:

今天在写导入功能的时候某列中是否有重复值,我是这么处理的!

Set<String> sett= new HashSet<String>();

        for(int i=2;i<row;i++){

          if( !sett.add(sheet.getCell(0,i).getContents())){

            jsonMsg = "{success:false,msg:'批量导入失败,第" + (i-1) + "行型号在表格中有重复!'}";

            book.close();

            response.getWriter().write(jsonMsg);

            return;

          }

        }

下面顺便说说Set  的add方法,以下是测试程序

package com.ybxywz.start.test;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

public class TestSet {

  public static void main(String args[]){

      Set<String> sett=new HashSet<String>();

      System.out.println("添加第一个元素返回值:"+sett.add("type1"));

      System.out.println("添加的第二个元素返回值:"+sett.add("type2"));

      System.out.println("添加重复元素后的返回值:"+sett.add("type2"));

      System.out.println("当插入空值的时候返回什么?"+sett.add(""));

      System.out.println("当插入重复的空值的时候返回什么?"+sett.add(""));

      Iterator it=sett.iterator();

      System.out.print("sett遍历输出:");

      while(it.hasNext()){

          System.out.print(it.next()+",");

      }

  }

}

以下是打印输出:

添加第一个元素返回值:true

添加的第二个元素返回值:true

添加重复元素后的返回值:false

当插入空值的时候返回什么?true

当插入重复的空值的时候返回什么?false

sett遍历输出:,type1,type2,

学真正Java技术,当然选疯狂软件Java培训机构,打造国内标准Java人才

  疯狂软件Java培训优势

  1. Java是世界第一大编程语言,市场占有率达20%。

  2.广州最专业Java培训机构,多年教学经验。

  3.学员技术牛就业率最好,就业薪资都在5000以上。

  4.部分老师还是Java技术系列书籍的作者,由这样的Java书籍原创作者讲课可想而知课程条理清晰、讲解清楚,知识面广、深度足够!

  5.疯狂软件Java培训课程以项目实战带动教学,上课打破传统课堂模式,以实训项目贯穿教学,带领学生一起做企业真实项目。

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。高薪从IT名企请来项目经理为学员亲自授课,对学员进行实战教学,在没有工作经验的学员,在疯狂java,通过大量全真经典企业级项目进行集中培训,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,成就感,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

转载于:https://www.cnblogs.com/gojava/p/3557659.html

好的,这是一个关于数据导入的问题,我将为您提供一个基于SpringBoot、MybatisPlus、EasyExcel框架的数据导入接口实现。 首先,您需要在MySQL数据库创建一个名为bluetooth_mac_address的表,该表包含一个名为mac_address的字段,用于存储蓝牙MAC地址。 接下来,您需要定义一个数据模型,用于映射数据库数据。例如: ```java @Data public class BluetoothMacAddress { @TableId(type = IdType.AUTO) private Long id; private String macAddress; } ``` 在这个模型,我们使用了MybatisPlus的注解@TableId和@IdType.AUTO来标识主键,并定义了一个名为macAddress的字段,用于存储蓝牙MAC地址。 接下来,您需要编写一个数据导入的接口,并使用EasyExcel框架来实现数据导入功能。例如: ```java @RestController public class BluetoothMacAddressController { @Autowired private BluetoothMacAddressService bluetoothMacAddressService; @PostMapping("/bluetooth-mac-address/import") public ResponseEntity importBluetoothMacAddress(@RequestParam("file") MultipartFile file) throws IOException { List<BluetoothMacAddress> list = new ArrayList<>(); // 读取Excel文件 ExcelReader reader = EasyExcel.read(file.getInputStream()).build(); ReadSheet sheet = EasyExcel.readSheet(0).head(BluetoothMacAddress.class).build(); List<Object> data = reader.read(sheet); reader.finish(); // 将数据转换为模型并验证 for (Object obj : data) { BluetoothMacAddress item = (BluetoothMacAddress) obj; // 验证数据格式是否正确 if (!validate(item.getMacAddress())) { return ResponseEntity.badRequest().body("Invalid MAC address: " + item.getMacAddress()); } list.add(item); } // 导入数据 List<BluetoothMacAddress> result = bluetoothMacAddressService.importData(list); // 返回结果 return ResponseEntity.ok(result); } private boolean validate(String macAddress) { // 验证MAC地址格式是否正确 // 此处省略具体实现 } } ``` 在这个接口,我们首先使用EasyExcel框架读取Excel文件,并将其转换为模型对象列表。然后,我们对每个模型对象进行验证,确保其蓝牙MAC地址格式正确。最后,我们调用bluetoothMacAddressService的importData方法将数据导入数据库。 在bluetoothMacAddressService,您需要实现importData方法,用于将数据导入数据库。例如: ```java @Service public class BluetoothMacAddressService { @Autowired private BluetoothMacAddressMapper bluetoothMacAddressMapper; public List<BluetoothMacAddress> importData(List<BluetoothMacAddress> list) { List<BluetoothMacAddress> result = new ArrayList<>(); // 遍历数据并插入数据库 for (BluetoothMacAddress item : list) { QueryWrapper<BluetoothMacAddress> wrapper = new QueryWrapper<>(); wrapper.eq("mac_address", item.getMacAddress()); if (bluetoothMacAddressMapper.selectCount(wrapper) > 0) { // 数据库已存在该数据,忽略之 continue; } if (bluetoothMacAddressMapper.insert(item) > 0) { result.add(item); } } return result; } } ``` 在这个方法,我们首先遍历数据并检查数据库是否已存在该数据。如果数据已存在,则忽略之;否则,将数据插入到数据库,并将插入成功的数据添加到结果列表。最后,我们返回结果列表。 这样,我们就完成了一个基于SpringBoot、MybatisPlus、EasyExcel框架的数据导入接口实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值