PreparedStatement
または他のユーティリティを使用してSELECT文のフィールドをパラメータ化する方法はありますか?SELECT文のフィールドをパラメータ化する方法は?
私のようなものを意味する:
SELECT ?, ? FROM MY_TABLE WHERE ? = ?
PreparedStatement
または他のユーティリティを使用してSELECT文のフィールドをパラメータ化する方法はありますか?SELECT文のフィールドをパラメータ化する方法は?
私のようなものを意味する:
SELECT ?, ? FROM MY_TABLE WHERE ? = ?
いいえ、JDBCは、あなたがそれを行うことはできませんが。パラメータの背後にあるアイデアは、実行のスピードアップとSQLの介入を避けることです。選択している列をパラメータ化しても、この2つの目的のいずれにも役立ちません。
私も春のフレームワークと `JdbcTemplate`を使用しています...これは私を助けることはできますか?以下の
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
で試してみてください – davioooh
いいえ、私の知る限り、JdbcTemplateは「通常の」SQLを受け取り、JDBCに渡します。独自のSQLテンプレートライブラリを構築する必要があります.SQL文がカラムリストや式にいくらかの柔軟性を持たせて大部分を「缶詰め」していると仮定すれば、それほど難しいことではありません。 – dasblinkenlight
@davioooh JDBCのところでは、 'select * from mytable where myfield in(?)'のように、より賢明なことはできません。ここで '?'は "in list"を表します。彼らは、あなたの "in list"の各要素に疑問符を付けるように強制します。これは、基本的な缶詰のステートメントの複製につながります。 – dasblinkenlight