所以我试图了解如何正确处理准备好的语句?我有这段代码,但是我不确定它是否正在使用准备好的语句或如何向其中添加准备好的语句。
代码:
/*
* Creating a word
*/
public long createword(DatabaseWords word) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_DICTIONARYID, word.get_dictionaryId());
values.put(KEY_WORD1, word.get_word1());
values.put(KEY_WORD2, word.get_word2());
values.put(KEY_WORD3, word.get_word3());
values.put(KEY_WORD4, word.get_word4());
// insert row
long word_id = db.insert(TABLE_WORDS, null, values);
return word_id;
}
如何包含准备好的语句以A.使其运行更快,B。防止对数据库的攻击
是的,insert()
在幕后使用准备好的语句:sqlite_prepare_v2()
编译SQL,然后sqlite3_bind_*()
绑定的参数ContentValues
。这样可以防止通常的SQL注入攻击。
要使用准备好的语句来提高性能,即仅执行一次SQL编译,然后将相同的准备好的语句重新用于具有不同绑定参数的多个查询,请参见SQLiteDatabase.compileStatement()
和SQLiteStatement
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句