有人可以给我一个关于如何在JDBC中创建查询的链接,该查询在WHERE语句中获取变量名,或者编写一个示例,更具体一点,我的代码看起来像这样:
private String getLastModified(String url) {
String lastModified = null;
ResultSet resultSet;
String query = "select LastModified from CacheTable where " +
" URL.equals(url)";
try {
resultSet = sqlStatement.executeQuery(query);
}
现在我需要一种语法,使我能够返回一个ResultSet对象,其中cacheTable中的URL等于方法参数中的url。
感谢
答案 0 :(得分:14)
最简单的方法是
String query = "select LastModified from CacheTable where url = '" + url +"'";
您应该使用绑定变量:
String query = "select LastModified from CacheTable where url = ?";
prepStmt = conn.prepareStatement(query);
prepStmt.setString(1, url);
rs = prepStmt.executeQuery();
答案 1 :(得分:1)
为了更进一步,你应该真正使用apache-commons或DBUtils框架中的Sping JDBC。由于涉及的步骤数量众多,许多JDBC工作都是平凡且容易出错的。这两个链接都有适合您入门的工作示例。
这些助手库将让您的生活更加舒适:-)。
答案 2 :(得分:1)
清除误解:JDBC和SQL是两个完全不同的东西。数据库只能理解SQL语言。这是一个(半)标准,你可以学习here。 JDBC只是一个Java API,它使您能够使用Java代码执行SQL语言。没有更少,仅此而已。 JDBC不是一种编写SQL语言的Java方式。它只是Java代码和数据库之间的 messenger 。您可以学习JDBC here。
那就是说,是的,PreparedStatement
是在SQL查询中设置值的方法。它不仅可以使用setXXX()
方法轻松地在SQL字符串中设置值得满足的Java对象,而且还可以避免SQL injection次攻击。