0

オブジェクトからテーブルへの jdbc 更新を行っています。オブジェクトにはいくつかの属性があり、値を持つオブジェクトのみでテーブルを更新したいと考えています。問題は、以下の update ステートメントが、省略された値がオブジェクトにない場合、それらの値をすべて消去してしまうことです。

例えば:

 String statementStr = "update users " 
                         + "set firstName = ?, lastName = ?, email = ?, birthday = ?, "
                         + "gender = ?"
                         + "where id = ?;";

このステートメントを変更して、オブジェクトから取り込まれた値のみを更新するにはどうすればよいですか?

4

1 に答える 1

1

私があなたを正しく理解していればISNULL()、フィールドをnull不可のプロパティのみで更新するために使用できます。それ以外の場合は、フィールドを更新せずにそのままにしておきます。

UPDATE users 
SET firstName = ISNULL(@nameParam, firstName), 
    lastName = ISNULL(@lastNameParam, lastName), 
    email = ISNULL(@emailParam, email),
    ...
WHERE id = ?;
于 2012-09-07T00:06:40.003 に答える