我有一个使用数据库的应用程序,其中组织列具有带特殊字符的记录(单引号)。在使用文本字段中的特殊字符进行搜索时,我收到强制关闭错误。
代码如下:
String name = idValues.getStringExtra("ORGNAME");
String sql ="select orgname from table1 where name like '%"+ name +"%' Order by org.name";
请帮我使用包含特殊字符的名称进行搜索的示例代码/链接。
提前致谢。
答案 0 :(得分:2)
String name = idValues.getStringExtra("ORGNAME");
if (name.contains("'")) {
// Should replace all the charecters
name = name.replaceAll("'", "''");
}
String sql ="select orgname from table1 where name like '%"+ name +"%' Order by org.name";
替换字符串中的单引号('),如图所示。请试试这个。
答案 1 :(得分:1)
尝试使用PreparedStatement,如下所示:
PreparedStatement pstmt = null;
String sql ="select orgname from table1 where name like ? Order by orgname";
pstmt.setString(1,"%"+name+"%");
ResultSet rs = pstmt.executeQuery();
没有进行错误检查。