如何从特殊字符中获取数据?

时间:2012-03-16 10:36:50

标签: java mysql

我遇到了选择查询

的问题
ResultSet rs = stmt.executeQuery("SELECT * FROM blogs where id in(select id from blogers where name=\"" + businessName + "\" ) order by postdate DESC limit " + i + "," + j);

在我的blogers表中,有些记录的名字就像rah& s,four!' t'所以这个查询不会返回我的记录 这里有什么问题?

1 个答案:

答案 0 :(得分:2)

  

这里有什么问题

您将值直接包含在SQL中。 不要这样做。通过PreparedStatement使用参数化SQL。

那样:

  • 您无需担心执行任何转义
  • 您无需担心SQL injection attacks
  • 您无需担心日期和时间等的转换问题
  • 您将代码与数据分开(您的SQL将更易于阅读,并且 如果你愿意,可以提取单独的资源文件,因为它将是常量)