我有一个html字符串,我想存储在我的SQLite数据库中“按原样”。 html字符串中的特殊字符阻止我的INSERT
语句存储它:
INSERT INTO myTable VALUES ('" + htmlString + "')
在iOS上,我使用参数化查询来完成此任务并且工作正常。我怎样才能在Android上实现这一目标?我已经为Android设置了参数化查询,但结果多种多样且不清楚。
答案 0 :(得分:2)
ContentValues vals = new ContentValues();
vals.putString("ColumnName", htmlString);
db.insert("myTable", null, vals);
或
final SQLiteStatement insert = db.compileStatement("INSERT INTO myTable VALUES (?)");
insert.bindString(1, htmlString);
//edit: hehe forgot about most important thing
insert.executeInsert();
或
db.rawQuery("INSERT INTO myTable VALUES (?)", new String[] {htmlString});
编辑:(插入多行)
如果您插入超过1行的wana然后在事务中执行它(它应该更快) 并且更喜欢第二种解决方案:
db.beginTransaction();
try {
final SQLiteStatement insert = db.compileStatement("INSERT INTO myTable VALUES (?)");
for(...){
insert.clearBindings();
insert.bindString(1, htmlString[N]);
//edit: hehe forgot about most important thing
insert.executeInsert();
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}