2012-03-16 31 views
0

我在麻烦选择查询如何从特殊词汇中获取数据的条件?

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的,四!“T”,所以这个查询没有返回我记录 有什么不对吗?

回答

2

什么是错在这里

你包括直接在SQL你的价值观。 不要这样做。改为使用参数化的SQL,通过PreparedStatement

这样:

  • 你不必担心执行任何转义
  • 您不必担心SQL injection attacks
  • 你并不需要担心的转换问题日期和时间等
  • 您将您的代码与您的数据分开(您的SQL将更易于阅读,并且可以提取 以分隔资源文件,因为它将保持不变)
+0

谢谢@jon Skeet – JMoh 2012-03-16 10:58:03

相关问题