0

-のような単純なクエリでフィールド値をnullに設定する方法はよく知られています。

UPDATE your_table
SET    your_column = NULL
WHERE  id = 1;

しかし、プログラム的には、フィールド値をnullに更新する正しい方法はどれですか?

db.execSQL("UPDATE  your_table SET your_column='" + null + "WHERE id='" + myid + "'");

また

db.execSQL("UPDATE  your_table SET your_column= NULL WHERE id='" + myid + "'");

ありがとう

4

2 に答える 2

3

私はPreparedStatementを使用します。

String query="UPDATE  your_table SET your_column= ? WHERE id=?");
PreparedStatement stmnt = conn.prepareStatement(query);
if(colyouAretryingtopass == null){]
  stmnt.setNull(1, Types.VARCHAR);
}
于 2013-03-21T10:00:50.830 に答える
2

正しい方法は、バインド変数を使用することです。使用しているフレームワークに応じて、これはさまざまな方法で行われます。

クエリは次のようになります。

String query = "UPDATE your_table SET your_column = null WHERE id = ?";
executeQuery(query, id);

executeQuery(String query, Object... args)選択したDBアクセス方法はどこにありますか。

バインド変数を使用しない場合は、次のようになります。

a)SQLインジェクションに対して脆弱です。
b)データベースのクエリキャッシュを利用しないことでパフォーマンスが低下します。

于 2013-03-21T10:00:44.100 に答える