java - android 上sqlite 中的单引号问题。需要在不替换引号的情况下解决

标签 java android android-studio

Cursor cursor = database.rawQuery

            ("SELECT * FROM table where word like '?%'".replace("?", 
              letter),null);

当字符串 letter 中有单引号时应用程序崩溃。 需要解决没有 letter.replace("' ", "") 的问题,因为表格中有带引号的单词。

最佳答案

您错误地使用了语句 API。您应该绑定(bind)要在实际查询中显示的文字字符串值。也就是说,这样做:

String param = letter + "%";
String query = "SELECT * FROM table WHERE word LIKE ?";
Cursor cursor = database.rawQuery(query, new String[] { param });

API 负责正确转义您尝试构建的 LIKE 表达式。

关于java - android 上sqlite 中的单引号问题。需要在不替换引号的情况下解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53882450/

相关文章:

java - 为两个扩展 super 的类制作比较器

android - stripe-android lib 1.0.3升级导致执行错误

java - 使用 ListView 并添加下一个类的数据

android - 9 补丁图像阻止构建项目 android studio

java - 测试界面是否应该始终与功能界面相同?

java - JFileChooser 打开常规文件浏览器而不是扩展文件浏览器

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

android - 键盘出现时 BottomNavigationBar 消失

Android 动态功能虽然说已安装,但仍停留在安装 View

android - gradlepublish.dependsOn ('assemble')不工作