我想制作一个 Java 应用程序,当我单击按钮时,它可以在浏览器中打开 Google map 。我可以从 MySQL 数据库中获取位置、纬度和经度。但是,如果我正在运行该类(class),即使所有结果集都已关闭,也会始终出现“结果结束后”。这是我的代码:
while(rs.next()) {
String getKodeLokasi = rs.getString("kode_lokasi");
if ((kode_lokasi.equals(getKodeLokasi))){
check = true;
}
break;
}
if (check) {
String latitude = "SELECT latitude FROM data_lokasi WHERE kode_lokasi = '"+kode_lokasi+"'";
String getLat = rs.getString("latitude"); <<<<----- After end of result set
String longtitude = "SELECT longtitude FROM data_lokasi WHERE kode_lokasi = '"+kode_lokasi+"'";
String getLong = rs.getString("longtitude");
String lokasi = "SELECT lokasi FROM data_lokasi WHERE kode_lokasi = '"+kode_lokasi+"'";
String getLokasi = (rs.getString("lokasi")).replace(" ", "+");
if(Desktop.isDesktopSupported()){
Desktop.getDesktop().browse(new URI("https://www.google.co.id/maps/place/'"+getLokasi+"'/@'"+getLat+"','"+getLong+"',17z/"));
}
} else {
JOptionPane.showMessageDialog(this, "Can't find code!");
}
我的代码有什么问题?之前谢谢,请帮助我:')
最佳答案
您一直滚动到 ResultSet
的末尾。此时,它不再位于有效行上,因此没有可读取的列值。特别是,您不能从 kode_lokasi.equals(getKodeLokasi)
评估为 true
的行中读取任何值。
如果您希望不超过一行,则将 while
循环更改为 if
block ,以便 rs.next()
只被调用一次。如果您需要容纳多个结果行,那么当您找到要查找的结果行时,您可能需要break
跳出循环,以便 rs.next()
不再对 ResultSet
调用。
这里的主题是,如果你想从满足条件的结果行中读取值,那么在找到该行后你不能移动到另一行。
关于java - 总是收到错误 "after end Result set"并且所有结果集都已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39712009/