PostgreSQL documentationは、CallableStatement
を使用してストアドプロシージャを呼び出すことを推奨しています。クエリとしてのストアドプロシージャ:CallableStatementとPreparedStatement
String callString = "{ call rankFoos(?, ?) }";
CallableStatement callableStatement = con.prepareCall(callString);
callableStatement.setString(1, fooCategory);
callableStatement.setInt(2, minimumRank);
ResultSet results = statement.executeQuery();
そしてPreparedStatement
通常の使用:
String queryString = "SELECT FooUID, Rank FROM rankFoos(?, ?);";
PreparedStatement preparedStatement = connection.prepareStatement(queryString);
preparedStatement.setString(1, fooCategory);
preparedStatement.setInt(2, minimumRank);
ResultSet results = statement.executeQuery();
私は理解しているように、CallableStatement
オファーを行セットを返すストアドプロシージャの場合は
CallableStatement
を使用しての違いは何ですかストアドプロシージャを呼び出す言語に依存しない方法です。私がPostgreSQLを使っていることを知っているので、これは私にとっては問題ではありません。私の知る限り見ることができるように、
PreparedStatement
を使用することの明らかな利点は、私が
WHERE
、
JOIN
、
ORDER BY
を使用することができ、その上にテーブルとしてストアドプロシージャを処理する、より汎用性の高いクエリである、など
がある態様または違いです私が紛失している方法の間に?クエリとして使用されるストアドプロシージャの場合は推奨されますか?
良い洞察力。ありがとう! –