java 插入数据库 excel数据 不插入重复ID行

WorkbookSettingswbs=newWorkbookSettings();wbs.setEncoding("GBK");Filefile=newFile(fil... WorkbookSettings wbs=new WorkbookSettings();
wbs.setEncoding("GBK");
File file=new File(filepath);
InputStream is = new FileInputStream(file);
Workbook wb = Workbook.getWorkbook(is,wbs);

Sheet sheet=wb.getSheets()[0];
int rsColumns=sheet.getColumns();//列数
int rsRows=sheet.getRows();//行数
String simNumber="";//每个单元格中的数据

for(int j=1;j<rsRows;j++){
String sql="insert into tp_wbsrisk values("; //拼接sql语句
for(int i=0;i<rsColumns;i++){
Cell cell=sheet.getCell(i,j);
simNumber=cell.getContents();
//下面这三行错了,去掉是全部插入。。
int countid=dbm.executeQueryInt("select count(*) from risktable where id='"+sheet.getCell(i,1).getContents()+"'");
if(countid>0) continue ;

if(i==rsColumns-1){
sql+="'"+simNumber+"'";
}else{
sql+="'"+simNumber+"',";
}
}
sql+=")";
System.out.println("sql::"+sql);
dbm.update(sql);
dbm.commit();
}
求大神帮忙改正,不插入重复ID行。。
展开
 我来答
帐号已注销
2013-11-06 · TA获得超过229个赞
知道小有建树答主
回答量:263
采纳率:66%
帮助的人:148万
展开全部
首先可以把countid取出来。然后存进hashset 就可以了么。对hashset进行遍历就ok了,hashset会自动去重复的.
追问
求代码。。小白。不会用hashset..
追答
HashSet hs=new HashSet();
hs.add(...)
和list的操作一样。
匿名用户
2013-11-06
展开全部
Map<Integer,Integer>numIDMap=new HashMap<Integer,Integer>();//在for(int j=1;j<rsRows;j++)上加

if(numIDMap.get(sheet.getCell(i,1).getContents())==sheet.getCell(i,1).getContents()){
不插入

}else{
插入

numIDMap.put(sheet.getCell(i,1).getContents(),sheet.getCell(i,1).getContents());

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青年mengder
2013-11-06
知道答主
回答量:8
采纳率:0%
帮助的人:10.2万
展开全部
为了安全起见,建议,如果excel中有重复ID,那么做数据库的修改工作..或者在插入数据库之前,先对Excel中的重复数据做验证,只要有重复,整个Excel都不让插入数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式