SQLクエリを実行するための次のコードがあります。
query = String.format("select * from users where user_name = '%s';", results.getString(1));
results2 = mStmt.executeQuery(query);
データセット内の1つのuser_nameの値は「O'brien」です。これは、「O'brien」の括弧が1つであるため、クエリを台無しにします。クエリは次のようになります。
select * from users where user_name = 'O'brien'
これを克服し、データを変更しないための戦略は何ですか?
編集:プリペアドステートメントは一重引用符の問題を修正しますが、それは問題の一部にすぎませんでした。私が持っている文字列値の1つに、「UNDER」という単語が含まれています。これはSQLキーワードです。たとえば、次のクエリを使用して、insertAllというpreparedStatementがあります。
insert into names (id, val1, val2, val3, val4, tTime, val5) values (?, ?, ?, ?, ?, ?, ?)
すべての助けをありがとう!