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行。。 展开
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行。。 展开
3个回答
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());
}
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());
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为了安全起见,建议,如果excel中有重复ID,那么做数据库的修改工作..或者在插入数据库之前,先对Excel中的重复数据做验证,只要有重复,整个Excel都不让插入数据库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |