JdbcTemplateを使用して複数の行を挿入する

Edward Dale:

mySQLで実行されているJdbcTemplate使用して、次のSQLをスケーラブルな方法で実行するにはどうすればよいですかこの場合、スケーラブルとは次のことを意味します。

  1. サーバー上で実行されるSQLステートメントは1つだけです
  2. 任意の数の行で機能します。

これがステートメントです:

INSERT INTO myTable (foo, bar) VALUES ("asdf", "asdf"), ("qwer", "qwer")

POJOのフィールドfoobarフィールドのリストがあるとします。リストを反復処理して実行できることを理解しています。

jdbcTemplate.update("INSERT INTO myTable(foo, bar) VALUES (?, ?)", paramMap)

しかし、それは最初の基準を達成しません。

私も実行できると思います:

jdbcTemplate.batchUpdate("INSERT INTO myTable(foo, bar) VALUES (?, ?)", paramMapArray)

しかし、私が知ることができることから、それはSQLを1回コンパイルして複数回実行し、最初の基準を再び失敗させます。

両方の基準を満たしているように見える最後の可能性は、SQLを単にで構築することですがStringBuffer、それは避けたいと思います。

意志:

複数行の挿入(「行値コンストラクタ」を使用)は、実際にはSQL-92標準の一部です。http://en.wikipedia.org/wiki/Insert_(SQL)#Multirow_insertsを参照してください

一部のデータベースはこの構文をサポートしていませんが、多くはサポートしています。私の経験では、Derby / Cloudscape、DB2、Postgresql、および新しいHypersonic 2。* +リリースがこれをサポートしています。

これをPreparedStatementとして機能させることについてのあなたの懸念は理解できますが、Spring JDBCが特定のクエリの項目のコレクションを((?)のように)自動的に処理する同様のケースを見ましたが、このケースを保証することはできません。

(この投稿への2番目のリンクを追加することはできません)で、何らかの助けになるかもしれない役立つ情報を見つけました。

2番目の要件(任意の数の引数で機能)が最も厳密な意味で満たされることはおそらく不可能であることを私は言うことができます:私が使用したすべてのデータベースは、実行されるクエリの長​​さの制限を課します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PQputCopyDataを使用して複数の行を挿入する方法

分類Dev

JdbcTemplateを使用して複数の行を削除する方法

分類Dev

phpを使用して複数のデータ行の挿入を実行する

分類Dev

PostgreSQLの関数を使用して複数の行を挿入する方法

分類Dev

PHPPDOを使用して複数の行を挿入します

分類Dev

executeを使用して複数の行を挿入します

分類Dev

Avroを使用してBigQueryに複数の列を持つ行を挿入する

分類Dev

Java:PreparedStatementを使用してMySQLに複数の行を挿入する

分類Dev

phpを使用して複数の行にフォーム値を挿入する

分類Dev

サブクエリを使用してMySQLに複数の行を挿入する

分類Dev

トリガーを使用して SQlite に複数の行を挿入する

分類Dev

結合を使用してテーブルに複数の行を挿入する

分類Dev

CTE(WITH)を使用してpostgresqlに複数の行を挿入する方法

分類Dev

PHPPDOを使用してMySQLに複数の行を持つ複数の配列を挿入する方法

分類Dev

jQueryを使用して複数のHTML要素を挿入する方法

分類Dev

ループを使用して、Codeigniter / Activerecordを使用して複数のSQL挿入を実行する

分類Dev

入力を使用して配列値から複数の行を挿入する方法

分類Dev

MySQLは、ON DUPLICATEKEYを使用して複数の行を挿入/更新します

分類Dev

forループを使用して複数の行を挿入します

分類Dev

csvからmysqlに複数の行を挿入し、AJAXを使用して進行状況を確認する

分類Dev

foreachを使用して複数の挿入と削除を行う方法

分類Dev

複数の行を挿入する方法

分類Dev

Arangodbは複数の行を挿入し、UPSERTを使用します

分類Dev

単一の実行を使用してテーブルへの複数の挿入を処理する方法

分類Dev

Laravel-行を複数挿入してIDを取得する

分類Dev

選択したデータを使用して複数の挿入を実行する

分類Dev

JDBIを使用して単一のINSERTで複数の行を挿入する方法は?

分類Dev

Eloquent / Fluentを使用して単一のクエリから複数の行を挿入する方法

分類Dev

MysqlとPHPを使用して同じ名前の複数の行を挿入する方法

Related 関連記事

  1. 1

    PQputCopyDataを使用して複数の行を挿入する方法

  2. 2

    JdbcTemplateを使用して複数の行を削除する方法

  3. 3

    phpを使用して複数のデータ行の挿入を実行する

  4. 4

    PostgreSQLの関数を使用して複数の行を挿入する方法

  5. 5

    PHPPDOを使用して複数の行を挿入します

  6. 6

    executeを使用して複数の行を挿入します

  7. 7

    Avroを使用してBigQueryに複数の列を持つ行を挿入する

  8. 8

    Java:PreparedStatementを使用してMySQLに複数の行を挿入する

  9. 9

    phpを使用して複数の行にフォーム値を挿入する

  10. 10

    サブクエリを使用してMySQLに複数の行を挿入する

  11. 11

    トリガーを使用して SQlite に複数の行を挿入する

  12. 12

    結合を使用してテーブルに複数の行を挿入する

  13. 13

    CTE(WITH)を使用してpostgresqlに複数の行を挿入する方法

  14. 14

    PHPPDOを使用してMySQLに複数の行を持つ複数の配列を挿入する方法

  15. 15

    jQueryを使用して複数のHTML要素を挿入する方法

  16. 16

    ループを使用して、Codeigniter / Activerecordを使用して複数のSQL挿入を実行する

  17. 17

    入力を使用して配列値から複数の行を挿入する方法

  18. 18

    MySQLは、ON DUPLICATEKEYを使用して複数の行を挿入/更新します

  19. 19

    forループを使用して複数の行を挿入します

  20. 20

    csvからmysqlに複数の行を挿入し、AJAXを使用して進行状況を確認する

  21. 21

    foreachを使用して複数の挿入と削除を行う方法

  22. 22

    複数の行を挿入する方法

  23. 23

    Arangodbは複数の行を挿入し、UPSERTを使用します

  24. 24

    単一の実行を使用してテーブルへの複数の挿入を処理する方法

  25. 25

    Laravel-行を複数挿入してIDを取得する

  26. 26

    選択したデータを使用して複数の挿入を実行する

  27. 27

    JDBIを使用して単一のINSERTで複数の行を挿入する方法は?

  28. 28

    Eloquent / Fluentを使用して単一のクエリから複数の行を挿入する方法

  29. 29

    MysqlとPHPを使用して同じ名前の複数の行を挿入する方法

ホットタグ

アーカイブ