2 回答

TA貢獻1842條經驗 獲得超13個贊
嘗試這個:
try{
rs.next();
System.out.println(rs.getString("5"));
}catch(Exception ex){
System.out.println(ex.getMessage("5"));
}

TA貢獻1772條經驗 獲得超6個贊
你的連接在哪里打開?您不應該無限期或不必要地保持連接打開。您的結果集沒有調用其 next() 函數,因此您沒有迭代數據。但是,您不應該通過公共方法(或一般恕我直言)傳遞結果集。而是創建一個類來表示結果集中的數據,并將結果集加載到所述對象中(然后返回)。
嘗試改為:
public static void main(String[] args) {
LocationDA locate = new LocationDA();
Record record = locate.getRecord("81");
try{
System.out.println(record.getLandmark());
}catch(Exception ex){
System.out.println(record.getMessage());
}
}
public ResultSet getRecord(String id) {
String sql = "SELECT * FROM LOCATION WHERE ID = ?";
try (Connection conn = ConnectionManager.getConnection()){
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
Record record = new Record();
record.setContinent(rs.getString(2));
//etc.
return record;
}
} catch (SQLException e) {
e.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
return null;
}
可以更改它以滿足您的需要(例如不返回 null);
添加回答
舉報