This question already has answers here:
ResultSet exception - before start of result set
(6个答案)
去年关门了。
嗨,我在以下代码中收到错误消息:
这是附加的图片:
不知道为什么。
然后,不再需要新的
(6个答案)
去年关门了。
嗨,我在以下代码中收到错误消息:
public Component createComponents(){
Panel pane = new Panel();
try{
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tonydb?useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC","root","1234");
Statement myStmt = myConn.createStatement();
ResultSet myRs = myStmt.executeQuery("select * from activeemployees");
ResultSet myRs2 = null;
while (myRs.next()) {
myRs2 = myStmt.executeQuery("SELECT * FROM employee WHERE ID="+myRs.getString("IDnumber"));
pane.add(new Label(myRs2.getString("firstName")+","+myRs.getString("lastName"),20,20));
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e.getMessage());
}
return pane;
}
这是附加的图片:
不知道为什么。
最佳答案
为什么不在查询中使用INNER JOIN
来简化查询?我想您不需要两个单独的sql语句,而是分别执行它们。相反,您可以使用join query合并两个表employee
和activeemployees
中的数据并从中获取数据。它也会快得多。
您可以在结果集中尝试此新查询:
ResultSet myRs = myStmt.executeQuery("SELECT E.firstName AS firstName, E.lastName AS lastName FROM employee E INNER JOIN activeemployees A ON E.IDnumber = A.IDnumber");
然后,不再需要新的
ResultSet
,myRs2
。您可以使用以下代码:while (myRs.next()) {
pane.add(new Label(myRs.getString("firstName")+","+myRs.getString("lastName"),20,20));
}
关于java - 从MySQL Java中“在结果集开始之前”获取错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50098805/
10-09 00:49