我正在尝试从我的结果集中查找重复的行。我在resultset中有大量数据,这是从resultset中找到重复项的最佳方法吗?我也尝试过数据列表。将结果集的一行与剩余的全部进行比较并找到重复项
List inner=new ArrayList<String>();
Connection con;
Statement stmt;
ResultSet rs;
ResultSetMetaData rsmd;
int columnNumber;
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","");
stmt=con.createStatement();
rs=stmt.executeQuery("select * from mydata_table where srno<1000");
rsmd=rs.getMetaData();
columnNumber=rsmd.getColumnCount();
while(rs.next()){
for(int i=1;i<columnNumber;i++){
inner.add(rs.getString(i));
}
}
System.out.println("\n" + inner);
rs.close();
con.close();
}catch(Exception e){
System.out.println(e);
}
我想比较一行与其余行,并从列表中找到重复的行。
那你为什么不在SQL中使用'DISTINCT'子句?这将是更干净的解决方案 –
这听起来像应该用SQL而不是ResultSet来完成。 – bradimus
我试过DISTINCT子句,但它并没有在我的情况下返回唯一的记录。 –