Eclipse neon.1(4.6.1)java; のSQLite 3.8.7(sqliteの-JDBC-3.8.7.jar)アポストロフィを埋め込んだINSERT INTO
私は、次のコードスニペットを使用して、テーブルに顧客のデータを挿入しようとしています:
残念ながらPreparedStatement ps;
insertSQL = "INSERT INTO tbl_TotalPatent "
+ "(Abstract, `Application/Filing Date`, `Application Number`) "
+ "VALUES ("
+ "'" + _field[0] + "', "
+ "'" + _field[1] + "', "
+ "'" + _field[2] + "');";
ps = con.prepareStatement(insertSQL);
ps.execute();
、クライアントのデータを持っています埋め込まれたアポストロフィは変更できません。
ます。java.sql.SQLException:[SQLITE_ERROR] SQLエラーまたは欠落しているデータベース(「S」に近い:構文エラー)
アポストロフィを見つけたとき、それは単一引用符であると仮定すると、文の爆弾アウト「のINSERT INTO」
一重引用符に異なる文字を使用するためにINSERT INTOステートメントのさまざまな置換を試みましたが、無駄になりました。 「簡単な」回避策があると思いますが、見つけられません。解決策はおそらくスタックオーバーフローに投稿されていますが、見つけられません。誰かが私を正しい方向に向けることができますか?
パラメータ化されたSQLを使用します。基本的には、SQLに直接値を入力しないでください。簡単な理由があります。 http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html –