Android - 如何在SQLite数据库中存储html字符串

时间:2012-12-06 15:49:56

标签: android html sqlite

我有一个html字符串,我想存储在我的SQLite数据库中“按原样”。 html字符串中的特殊字符阻止我的INSERT语句存储它:

INSERT INTO myTable VALUES ('" + htmlString + "')

在iOS上,我使用参数化查询来完成此任务并且工作正常。我怎样才能在Android上实现这一目标?我已经为Android设置了参数化查询,但结果多种多样且不清楚。

1 个答案:

答案 0 :(得分:2)

在Android中你也有参数化的查询......实现这个目标的方法很少:

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();
}