1

引用符で囲まれたSQL文字列として渡されたパラメータを処理してから、もう一度引用符で囲む必要があります。HibernateやJDBC、またはクォート解除ビットを実行できる一般的なJavaライブラリにユーティリティはありますか?

(そうでなければ、私はできると思いますstr.replace("''","'")。これは正しいですか?)

編集:

ほんの少しの背景。Hibernateに機能を追加しようとしています。私がオーバーライドしているHibernateクラスは、その引数を引用符で囲まれた文字列として受け取ります。バインド変数に対して送信された元の引数にアクセスできません(いくつかのHibernateクラスを書き直さないでください)。

4

1 に答える 1

2

Stringオブジェクトを引用しないでください。

デザインに問題がある場合は、すでに引用されているものを受け取るべきではありません。何らかの状況で引用が必要な場合は (それを避けてください)、使用する前に引用してください。

JDBC 側では、いつでも次のことができるため、SQL 引用符付き文字列は必要ありません。

String query ="select myColumn from MyTable where fullname = ?";
PreparedStatement stm = c.prepareStatement(query);
stm.setString(1, "Garis M. Suero");

開発者がソフトウェアをコーディングしているときに、将来の混乱やエラーを軽減するために、ソフトウェアを単純な方法で設計することは非常に良い方法です。

たとえば、これをサードパーティのソフトウェアから受け取っている場合、文字列を取得して正しい値に変換するオブジェクトを作成できます。おそらく 2 つのメソッドを使用できますand another:

于 2013-03-08T18:04:08.333 に答える