[解決済み] PreparedStatementとStatement.RETURN_GENERATED_KEYSについて
2023-05-22 05:38:31
質問
いくつかの JDBC ドライバで
Statement.RETURN_GENERATED_KEYS
を返す唯一の方法は、次のようなものです。
long key = -1L;
Statement statement = connection.createStatement();
statement.executeUpdate(YOUR_SQL_HERE, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = statement.getGeneratedKeys();
if (rs != null && rs.next()) {
key = rs.getLong(1);
}
と同じことをする方法はありますか?
PreparedStatement
?
編集
で同じことができるかと聞いたのは
PreparedStatement
は、次のようなシナリオを考えてみましょう。
private static final String SQL_CREATE =
"INSERT INTO
USER(FIRST_NAME, MIDDLE_NAME, LAST_NAME, EMAIL_ADDRESS, DOB)
VALUES (?, ?, ?, ?, ?)";
の中で
USER
テーブルには
PRIMARY KEY (USER_ID)
であり、これは
BIGINT AUTOINCREMENT
(に表示されないのは、そのためです)。
SQL_CREATE
文字列です。
さて、私が入力した
?
を使って
PreparedStatement.setXXXX(index, value)
. を返したいのですが
ResultSet rs = PreparedStatement.getGeneratedKeys()
. どうすれば実現できるのでしょうか?
どのように解決するのですか?
を使用することができます。
prepareStatement
メソッドで、さらに
int
パラメータを取る
PreparedStatement ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)
いくつかのJDBCドライバ(例えばOracle)では、生成されたキーのカラム名またはインデックスを明示的にリストアップする必要があります。
PreparedStatement ps = con.prepareStatement(sql, new String[]{"USER_ID"})
関連
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
API の戻り値を処理するために ResponseEntity を使用する
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
-
[解決済み] PreparedStatementのIN句の選択肢は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Uncaught ReferenceError: は定義されていません。
-
-bash: java: コマンドが見つからない 解決方法
-
セミコロン期待値エラー解決
-
ジャバアレイ
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
[解決済み] SQL Server - INSERT後の戻り値
-
[解決済み] MySQL & Java - 最後に挿入された値のIDを取得する (JDBC) [重複].