public static ResultSet execute(Connection connection, String sql, Object[] params, ResultSet resultSet, PreparedStatement preparedStatement) throws SQLException {
preparedStatement = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
//setObject,占位符從1開始,但是我們的陣列是從0開始!
preparedStatement.setObject(i + 1, params[i]);
}
resultSet = preparedStatement.executeQuery();
return resultSet;
}
上面為查詢公共類,但我記得我學MySQL查詢陳述句并不需要for()這3行陳述句就能夠查詢,執行完sql回傳一個結果集,然后再從結果集中獲取查詢資訊即可,這個for在這有什么左右,希望講的詳細點。
uj5u.com熱心網友回復:
對preparedStatement中的變數賦值,這個函式把值以object陣列為引數傳入此函式uj5u.com熱心網友回復:
最簡單的方法就是去查看你的sql里是否用到了?問號比如select * from tb where a = ? and b = ?
這里的?代表需要傳給sql的引數,for回圈就是設定這些引數。有幾個?就有幾個引數,params的長度就是引數個數,所以用for取把每個params[i]設到相應的?去,這樣preparesStatement生成的sql才是完整版sql,相當于把原來的sql的?都替換成了真正的引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/191090.html
標籤:Java相關
