我想制作一个Java应用程序,当我点击按钮时,它可以在浏览器中打开谷歌地图。我可以从MySQL数据库中获取位置,纬度和经度。但是,如果我正在运行该类,即使所有结果已经关闭,“结果结束后”也会一直显示。这是我的代码:
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!");
}
我的代码有什么问题?在此之前,请帮助我:')
答案 0 :(得分:1)
您一直滚动到ResultSet
的末尾。此时,它不再位于有效行上,因此没有要读取的列值。特别是,您无法从kode_lokasi.equals(getKodeLokasi)
评估为true
的行中读取任何值。
如果您希望不超过一行,请将while
循环更改为if
块,以便仅调用rs.next()
一次。如果您需要容纳多个结果行,那么当您找到要查找的结果行时,可能需要break
离开循环,以便rs.next()
不会在{ResultSet
上调用1}}再次。
这里的主题是,如果你想从结果行中读取满足你条件的值,那么在找到那行之后你就不能转移到另一行。