Android中SQLite数据库解决单引号冲突

代码与范例:

说明:Android 所采用的 SQLite 数据库在 query,execSQL 等操作时无法识别字符串中出现的单引号(’),而会导致 SQLiteException。比如在范例中,若 tagfilter 的值为 Harry’s personal life ,则会出现错误,因为 s 之前的单引号会被识别为语句终结符。比较简单的解决方法就是通过 replace() 将原单引号替换为连续两个的单引号(”)。注意 replaceAll() 需要提供正则表达式,用法有所不同。

此外 SQLite 对于 ContentValues 方式或是 execSQL (String sql, Object[] bindArgs) 方法不会有这一问题,也可作为一种解决方案。