2012-03-06 15 views
2

私はMysql Server 5.5で私のサーバー側にtomcatを使用しています。simpleJdbcInsertと重複して置き換えます

私は、データベース接続にSpringフレームワークを使用しています。

simpleJdbcInsertを使用してテーブルに行を挿入したいと考えています。重複のために挿入が失敗した場合は、重複した行を置き換えてください。

このsimpleJdbcInsertを実行する方法はありますか、またはjdbcTemplateを使用して、 "ON DUPLICATE"ステートメントでクエリを作成する必要がありますか?

おかげ

答えて

1

ダブル主キーがある場合には、論理的に、重複が発生します。

従来のJDBCまたはHibernateを使用している場合は、新しいプライマリキー値を挿入する前に、同じプライマリキー値がすでに存在するかどうかを確認する必要があります。

しかし、主キーがまだ設定されていない場合、またはDBMSによって設定されている場合は、別の問題があります。 JDBCで

  1. 、再びあなたが新しいものを挿入する前に照会することにより、古いスタイルの手動チェックを行う必要があるが、休止中

  2. 、あなたはそれを更新する必要があります。重複がない場合、Hibernateは新しいものを作成しますが、重複がある場合は置き換えます。

+0

ありがとう。私は従来のJDBCを使用します。私はおそらくsimplejdbcinsertが行が存在するかどうかをチェックし、そうであればそれを置き換えることができます。しかし、それはあまりにも単純ではありません:) kおかげで私はそれを手作業で行うでしょう – ufk

+0

私は本当にあなたの正確なケースを知っていませんが、鍵が生成されていなければ、自動的にそれをする選択肢はありません。 – simaremare

+0

2. Hibernateが2つのクエリを使用しているか、INSERT ... ON DUPLICATE KEYを使用しているかどうかを知っていますか? – Sergi0

関連する問題