用JAVA程序向SQL数据库导入Excel表,判断出SQL表中已存在的重复数据,并跳过重复的继续导入其他记录.

用JAVA程序向SQL数据库导入Excel表,判断出SQL表中已存在的重复数据,并跳过重复的继续导入其他记录.,第1张

select count() as zs from table_c where 关键字段名称=b表的数据

你要的是这个吧?

老实说你每条数据查一次,要是有一百万条数据你想过你要查多久吗?你确定你的服务器扛得住?你可以这样解决:

select 关键字段名称 as zs from table_c

返回的是一个二维数组你可以把它拆开成一维数组,因为他每一行只有一个值,然后再用数组的contains方法判断是否存在,这样效率高很多

据我所知没有专门的捕获主键的异常

你可以

try{

}catch(exception

ex){

exprintstacktrace();

}

捕获异常之后,会在控制台打印你所捕获异常的信息。如果你只想捕获主键异常的话,可以把打印出来的主键异常名称来替换exception

其实效果是一样的。。。

如果遇到这个问题了有一个办法可以实现你的要求将读取存储过程的代码块加锁达到线程安全就OK了

怎么会呢

每个对象都只有一个锁标记,只有获得锁标记的进程才能执行里面的代码

不是几核的问题CPU看似可以处理很多请求其实一个时刻也只能处理一个请求因为它的速度相当快所以我们就觉得它是一次处理很多请求

比如你通过getNewList()方法得到一个List<String> nameList集合,该nameList 存放着从数据库中查询的name,现在统计name有多少次重复:

Map<String,Integer> resultMap = new HashMap<String, Integer>();

for(int i = 0; i < nameListsize(); i++){

String tmp = nameListget(i);

int count = resultMapget(tmp) != null resultMapget(tmp) : 0;

count = count + 1;

resultMapput(tmp, count);

}

resultMap中的key就是不同的name,有多少个key,就有多少个不同的name,其value就是每个name重复的次数。

有两种方法

(1)如果你的数据是primaryKey,你可以直接插入,然后try{}catch(Exception),进入catch的话就是数据重复。。。(要确定你的SQL

statement没有问题才可以用)。。。

(2)如果你的数据不是primaryKey,你可以用SELECT语句,然后ResultSet

,

if(rsnext()){重复}else{没有重复};

以上就是关于用JAVA程序向SQL数据库导入Excel表,判断出SQL表中已存在的重复数据,并跳过重复的继续导入其他记录.全部的内容,包括:用JAVA程序向SQL数据库导入Excel表,判断出SQL表中已存在的重复数据,并跳过重复的继续导入其他记录.、java 主键重复处理、为什么Java程序在并发的情况下数据库会出现重复记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10189020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存