如何在Java中比较两个Resultset列的值?
谁能告诉我如何比较两个如何在Java中比较两个Resultset列的值?,java,jdbc,Java,Jdbc,谁能告诉我如何比较两个resultset值?仅在if语句中获取错误,但其余部分正在工作 Statement s = con.createStatement(); Statement stmnt = con.createStatement(); String query = "select * from tbl_product"; s.execute(query); ResultSet rs = s.getResultSet(); while(rs.next()) { String str
resultset
值?仅在if语句中获取错误,但其余部分正在工作
Statement s = con.createStatement();
Statement stmnt = con.createStatement();
String query = "select * from tbl_product";
s.execute(query);
ResultSet rs = s.getResultSet();
while(rs.next())
{
String strOuter=rs.getString(2);
System.out.println(strOuter);
String query1 = "select * from PRODUCTS_AJ";
stmnt.execute(query1);
ResultSet rs1 = stmnt.getResultSet();
while(rs1.next())
{
System.out.println("-------"+rs1.getString(2));
if(rs.getString(2).equals(rs1.getString(2)))// Getting Error here for this line
{
System.out.println("Found");
}
}
}
java.sql.Exception
找不到数据无法再次读取列值。因此,将其复制到局部变量中以进行日志记录
String val = rs1.getString(2);
System.out.println("-------" + val);
if (rs.getString(2).equals(val)) {
你能做的就是 使用SQL where子句
String query1 = "select * from PRODUCTS_AJ where fieldNmae = 'something'";
ResultSetMetaData rsm = rs.getMetaData();
int colCount = rsm.getColumnCount();
if (colCount > 1)
{
// found
}
为了
或者可能
ResultSet rsOLD = null;
ResultSet rs = s.getResultSet();
// rs will be new ResultSet
while(condition)
{
// check from second row (maintain if case)
.
.
.
// end of loop
rsOLD = rs;
}
好的!这是在MS Access中使用JDBC-ODBC网桥驱动程序时出现的典型错误。我经历过。我用下面的方法解决了它。从结果集中多次检索相同的数据。
请像这样试试
ResultSet rs = s.getResultSet();
String str=rs.getString(2);
使用此字符串进行比较
str.equals(rs2.getString(2)
谢谢 当您多次尝试读取同一游标的同一列时,会发生这种类型的错误。你遇到的是一个典型的场景。只需暂时存储字符串,如下所示:
String col3 = rs1.getString(2);
并在需要时使用col3
而不是rs1.getString(2)
System.out.println("-------"+ col3);
if(col3.equals(rs1.getString(2)))
{
...
rs.getSting(2)
在rs1的while循环中执行rs1的行次数。rs中的行数可能没有rs1那么多。并且异常的完整堆栈跟踪是?顺便说一句,为什么不使用1个查询为您进行比较?@Sazzadurahaman“不同的连接/语句”:这将大大增加开销!