导入时需要判断重复的数据. 根据编号唯一判断.提示哪些编号导入失败,重复的不能导入.
import java.io.File;
	import 
java.io.IOException;
  	import jxl.Workbook;
	import jxl.Sheet;
	import jxl.Cell;
     import jxl.read.biff.BiffException;
	public class ReadExcel {
		public static void main(String[] args) throws Exception {
			Workbook workbook=null;			
			try {				
				workbook = Workbook.getWorkbook(new File("D:\\abc.xls"));
			} catch (BiffException e) {
				e.printStackTrace();
			} catch (
IOException e) {
				e.printStackTrace();
			}
			Sheet sheet=workbook.getSheet(0);
	        Cell[] cell=sheet.getRow(0);
	        StringBuffer s=new StringBuffer("");
	        s.append("insert into IOAS_CAPITALASS(crad_id,institutions_1,asset_category)values(");
	        int row=sheet.getRows();
	        for(int i=2;i<row;i++){
	        	StringBuffer r=new StringBuffer(s);
	        	Cell[] cell2=sheet.getRow(i);
	        	for(int j=0;j<cell2.length;j++){
	        		if(j<cell2.length-1){
	                	    r.append("'"+cell2[j].getContents().trim()+"',");
	                	}else{
	                		r.append("'"+cell2[j].getContents().trim()+"'");
	                	}
                 	}
	        	  r.append(")");	         
	            System.out.println(r.toString());
	        	//WorkConnection workconn=new WorkConnection();
	            //workconn.insert(r.toString());	       
	        }
		}				
	}
这个是导入d盘下abc.xls,现在要判断导入的xls里是否有重复数据(重复数据通过crad_id判断),有的话把crad_id输出,代码应该怎么改,希望高手能说下。谢谢
------解决方案--------------------
目标表的数据量大么?如果不是很大,考虑先把所有crad_id选择出来,放入 Set 中,那么导入时就可以比对下再进行导入了。
如果数据量很大,就只能靠数据库关于crad_id的唯一索引来处理了;那么执行insert时要1条条执行,不要放在一个事务中。insert失败是可以利用返回值来判断的。
------解决方案--------------------JDBC 在insert的时候提供的返回值的,根据返回值判断是否成功了
------解决方案--------------------你的意思是导入文件里的crad_id和数据库的crad_id重复?那你可以这样处理。
那如果导入文件里本身就用重复的crad_id呢?总不能插入每一条之前都就重新查询数据库吧。
最好catch下,如果返回的是主键冲突的key值,就输出“该条数据信息已经存在”,然后continue执行。