0
是否有可能使用預處理語句在Java中進行聯接?準備好的語句加入Java
public class Test {
static Connection conn;
static PreparedStatement ps;
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String sql = "select addr.address_id from address addr inner join pizza_stores ps on addr.address_id = ps.address_id";
conn = ConnectionUtil.getConnection();
ps = conn.prepareStatement(sql);
System.out.println("DEBUG--: before query");
ResultSet rs = ps.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getInt("addr.address_id"));
}
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我沒有得到任何結果,但是當我在SQL Developer中運行我得到的結果(例如ADDRESS_ID - > 1,2,3)。我將在稍後使用存儲過程。我只是好奇。
你可以在sql語句中做任何你想做的事情。還有其他的事情在這裏並不明顯。 – OldProgrammer
您如何使用「prepareStatement」似乎存在錯誤。你首先調用'ps = conn.prepareStatement(sql);'然後再次傳入sql ResultSet rs = ps.executeQuery(sql);'。不過,我認爲它應該可以工作,因爲您沒有任何投入來設置。空白的結果集可能是連接到db用戶?嘗試使用rs.getIn(1)而不是列名? –
嘗試使用'getInt(「address_id」)'而不是'getInt(「addr.address_id」)' –