有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

谢谢


共 (3) 个答案

  1. # 1 楼答案

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

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

  2. # 2 楼答案

    最简单的方法是

    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();
    
  3. # 3 楼答案

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

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