2016-09-20 19 views
1

私は通常、私はこの方法でデータベースにデータをロードし、その後、提案をしたいと思います:名前付きパラメータをINSERT PreparedStatementで使用できますか?

PreparedStatement prep = con.prepareStatement ("INSERT INTO TABLE (NAME, LAST NAME) VALUES (?,?)"); 
             prep.setString (1, name); 
             prep.setString (2, last name); 
             prep.executeUpdate(); 

私はつまり、私はにデータを送信したい、データの参照インデックスを示す回避する方法をしたいと思いますPreparedStatementが曖昧になっています インデックスがありません。データを送信したいのですが、正しいフィールドを設定するためのAPIになります。このようなものを使用できます(名前をつけて姓を反転し、 APIで2番目のフィールドに追加する必要があります)

PreparedStatement prep = con.prepareStatement ("INSERT INTO TABLE (NAME, LAST NAME) VALUES (?,?)"); 
             prep.setString (surname, name); 
             prep.setString (NAME, name); 
             prep.executeUpdate(); 

答えて

0

jdbcはネイティブにサポートしていませんortプリペアド・ステートメントの名前付きパラメータあなたの質問に答えられるかもしれないthis answerが見つかりました。

使用するデータベース(Oracle、MySQLなど)によっては、少し異なるツールが必要な場合があります。

1

JDBC標準では、PreparedStatementの名前付きパラメータマーカーはサポートされていませんが、JDBCドライバの一部のベンダー実装でサポートされています。ここにはDB2 JDBC extensionの例があります。特定のデータベースベンダーのドライバ実装のドキュメントを確認してください。

0

からJAVA PreparedStatementのドキュメントを参照してください。そのような方法はありません。

用意されていた方法は、一般的に次のようになります。

set...(int parameterIndex, SomeObject variableName)