4

こんにちは私はデータベースで名前の組み合わせを探しています。私は次のように組み合わせを渡します

"firstName='" + firstName + "'", "middleName='" + middleName + "'", "lastName='" + lastName + "'"

これは正常に機能します。しかし、問題は名前に「」が含まれている場合に発生します。どうすれば修正できますか?例:ジョンズやジェリーなどが例外を引き起こす

4

7 に答える 7

11

準備されたステートメントを使用するのは簡単です

ps.executeUpdate("INSERT INTO tb_name values(?,?) WHERE id=?");
ps.setString(1,firstName);
ps.setString(2,middleName);
ps.setInt(3,id);
ps.execute();
于 2012-06-13T09:25:01.207 に答える
4

少なくともMySQLの場合は、'前に別のものを配置する必要があります。

INSERT INTO table (column) VALUES ('this isn''t it');
于 2012-06-13T09:20:23.877 に答える
3

Hibernateを使用している場合は、次のように使用する必要があります。

Query query = session.createQuery("from Something s where s.firstName = :firstName and s.middleName = :middleName and s.lastName = :lastName");
query.setString("firstName", firstName);
query.setString("middleName", middleName);
query.setString("lastName", lastName);

List<?> list = query.list();

これがお役に立てば幸いです。あなたはここここでもっと見ることができます

于 2012-06-13T10:01:56.567 に答える
0

SQLの単一引用符(')は、円記号でエスケープすることで無視できます\'

于 2012-06-13T09:20:34.123 に答える
0
    String firstName="X";
    String middleName="Y";
    String lastName="Z";

 "firstName='" + firstName + "',middleName='" + middleName + "',lastName='" + lastName + "'";

これを使用して、次のように出力を取得できます

firstName='X',middleName='Y',lastName='Z'
于 2012-06-13T09:29:03.967 に答える
-1

これを試して:

firstName = firstName.replace("'" , "''");

代わりに PreparedStatement を使用してください。

于 2012-06-13T09:21:46.090 に答える
-1

以下も機能すると思います(少なくともMySQLの場合):

SELECT login FROM usertable WHERE lastname="O'Neil";
于 2012-06-13T09:24:42.887 に答える