2 回答

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

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
你的連接在哪里打開?您不應(yīng)該無(wú)限期或不必要地保持連接打開。您的結(jié)果集沒有調(diào)用其 next() 函數(shù),因此您沒有迭代數(shù)據(jù)。但是,您不應(yīng)該通過(guò)公共方法(或一般恕我直言)傳遞結(jié)果集。而是創(chuàng)建一個(gè)類來(lái)表示結(jié)果集中的數(shù)據(jù),并將結(jié)果集加載到所述對(duì)象中(然后返回)。
嘗試改為:
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);
添加回答
舉報(bào)