Java 在JDBC中的查询WHERE子句中指定变量名

Java 在JDBC中的查询WHERE子句中指定变量名,java,mysql,jdbc,Java,Mysql,Jdbc,请有人给我一个链接,介绍如何在JDBC中创建一个在WHERE语句中获取变量名的查询,或者编写一个示例。更具体地说,我的代码如下所示: private String getLastModified(String url) { String lastModified = null; ResultSet resultSet; String query = "select LastModified from CacheTable where " + " URL

请有人给我一个链接,介绍如何在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


谢谢

最简单的方法是

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();

为了更进一步,您应该真正使用ApacheCommons或framework。由于JDBC涉及的步骤很多,因此很多JDBC工作都很平凡且容易出错。这两个链接都有工作示例供您开始使用


这些助手库将使您的生活更加舒适:-)

澄清一个误解:JDBC和SQL是两个完全不同的东西。数据库只理解SQL语言。这是一个你可以学习的(半)标准。JDBC只是一个JavaAPI,它使您能够使用Java代码执行SQL语言。没有更少,没有更多。JDBC不是Java编写SQL语言的方式。它只是Java代码和数据库之间的信使。您可以学习JDBC


也就是说,是的,这是在SQL查询中设置值的方法。它不仅简化了使用
setXXX()
方法在SQL字符串中设置具有完整性的Java对象,而且还使您免受攻击。

感谢您的回答,还有什么其他方法,以及如何绑定变量?哦。。我以为prepareStatement只是用于更新查询。非常感谢。我还有一个问题,如何执行查询,特别是如何获取ResultSet对象?(你可以忽略它,我现在注意到了编辑,谢谢)