我正在尝试制作一个从数据库导入数据并在另一个功能中使用它的应用程序。
我与数据库建立了连接,它返回了一个名为 miejsce 的变量:
public void sprawdzAuto(String nrRej, String miejsce){
try{
String query = "select lokalizacja from samochody75 where nrRej=?";
PreparedStatement pst = con.prepareStatement(query);
pst.setString(1, nrRej);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
miejsce = rs.getString(1);
System.out.println(miejsce);
}
JOptionPane.showMessageDialog(null, "Znaleziono.");
} catch(SQLException e) {
System.out.print(e);
}
}
现在,当我得到 miejsce 时,我想在另一个名为 Mapa 的 .java 文件中使用它。
public class Mapa extends MapView{
private Map map;
public Mapa(String nName)
{
JFrame frame = new JFrame(nName);
setOnMapReadyHandler(new MapReadyHandler() {
@Override
public void onMapReady(MapStatus status) {
if (status == MapStatus.MAP_STATUS_OK){
map=getMap();
MapOptions mapOptions = new MapOptions();
MapTypeControlOptions controlOptions= new MapTypeControlOptions();
mapOptions.setMapTypeControlOptions(controlOptions);
map.setOptions(mapOptions);
map.setCenter(new LatLng(1,1));
map.setZoom(17.0);
Marker mark = new Marker(map);
mark.setPosition(map.getCenter());
}
}
});
frame.add(this, BorderLayout.CENTER);
frame.setSize(700,500);
frame.setVisible(true);
}
}
我想要miejsce的结果到map.setCenter(); 我尝试了不同的方法,但没有一个有效。 有什么解决办法可以实现吗?
提前谢谢您。
最佳答案
您似乎误解了很多关于作用域和 Java 一般如何工作的概念。您应该尝试找到 java tutorial 在在 StackOverflow 上发布之前。
以下提示可以帮助您解决问题。
您正在迭代
ResultSet
这意味着您可能不会只有一个结果。所以当你写miejsce = rs.getString(1);
时只有结果集的最后值才会存储在字符串中。String
是 immutable object 。这意味着当您通过String
作为方法的参数,您将无法访问String
的值来自调用方法除非您从被调用方法返回它。而这不是你在这里所做的。要完成我之前的两点并部分解决您的问题,您可以查看
List
在Java中。您可以在其中存储对象和值、字符串包含,并且您将能够访问列表的内容,这些内容是从被调用的方法填充的(此处为sprawdzAuto
),从您的调用方法。
我不会为你编写代码,我认为你自己挖掘一下会更好。
希望这有帮助。
关于java - 使用另一个 java 文件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59861333/