準備済みステートメントを使用したい。準備済みステートメントの利点は、毎回解析/コンパイルする必要がないため、負荷が軽減されることです。ここで私の質問は、既に準備されたステートメントの「認識」が Java または DB システム内でどこで行われるかということです。コード内の PreparedStatement オブジェクトを格納する場所を知りたいので、質問します。クラス属性として、すべてのリクエストでパラメーターを設定するか、リクエストがあるたびに新しい準備済みステートメント オブジェクトを作成します。
public class Option1 {
private PreparedStatement myStatement;
public Option1() {
// create the myStatement object
myStatement = conn.prepareStatement("");
}
public List<Items> query() {
// just use the myStatement object
myStatement.setString(1, "foo");
}
}
public class Option2 {
public List<Items> query() {
PreparedStatement myLocalStatement = conn.prepareStatement("");;
// create and use the statement
myLocalStatement.setString(1, "foo");
}
}
今私の質問は、それを行うためのより良い方法、オプション1または2は何ですか? ただし、実行するたびに「クリーンアップ」を行う必要がありmyStatement.close()
ます。
別の言い方をすればいいのかもしれませんが、最も効果的な方法で再利用するにはどうすればよいでしょうか?
更新: 2 つの回答がある場合、1 つはオプション 1 を、もう 1 つはオプション 2 を優先し、コミュニティにその選択に投票するようお願いします ^^