java - 在搜索中处理单引号

标签 java oracle struts2

我将如何在 java 中使用单引号进行查询语句。当我用单引号搜索一个词时,它显示 s no record to display

例如我有一个名字 D'costa 我如何使用 java 搜索它

 getSearchByUserSQL.append("SELECT * FROM SID_USERS  ");
    getSearchByUserSQL.append("WHERE lower(FIRSTNAME) like  ? 
          OR lower(LASTNAME) like  ?");

最佳答案

虽然您可以尝试并手动转义所有字符串,但它的工作量很大而且很困难(不同的数据库可能有不同的转义规则)。作为您不应该这样做的进一步证据 - 看看 apahe commons lang - 正是出于这个原因,他们放弃了对 2.* 和 3.* 之间转义 SQL 的支持。

因此,如果您将查询变成 PreparedStatement , 然后你可以使用 PreparedStatement.setParameter(int, String)插入您的动态值而不是占位符,JDBC 驱动程序将为您完成所有转义。所以:

String myQuery = "SELECT * FROM SID_USERS WHERE lower(FIRSTNAME) like :1 OR lower(LASTNAME) like :2";
PreparesStatement ps = connection.prepareStatement(myQuery);
ps.setParameter(1,"Mickey");
ps.setParameter(2,"Mouse");
results = ps.execute();

关于java - 在搜索中处理单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14331364/

相关文章:

java - Web 服务 Jax WS 编译但无法访问

java - 在 JavaFX 中更改 IP 地址

sql - 识别何时在 SQL 查询或 PL/SQL 过程中执行函数

Oracle 如何将查询导出到文本/csv 文件

sql - 通过 Oracle SQL 中的变量传递时间间隔

javascript - 如何在Javascript中获取旧值和新值?

java - 如何使用 Select 子句中的构造函数为多个表的选定列编写 HQL JOIN 查询

java - 使用 Horizo​​ntalPicker 库的问题

java - 如何在 struts2 中映射长 REST url——使用 struts2 rest 插件

jsp - 如何使用struts2和jsp从系统位置播放视频