有 Java 编程相关的问题?

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

java JDBC:无法创建语句

我试图通过JDBC对Oracle数据库执行一个查询。我已经在SQL Developer中验证了它的有效性。 但当我通过JDBC运行它时,我在

ps = con.prepareStatement(sql.toString());

我尝试过不同的语句和SQL查询,它们都在JDBC的SQL开发人员bur non中工作。此外,我没有任何stacktrace可供调试

问题1

      sql.append("SELECT * FROM Tabel WHERE (ID1=" + id + " AND ORG=" + org + ") OR (ID2=" + id + " AND ORG=" + org + ")");

问题2

sql.append("SELECT * FROM Tabel WHERE (ID1=" + id + " OR ID2=" + id + ") AND ORG=?" + org);

问题3

sql.append("SELECT * FROM Tabel WHERE (ID1=? OR ID2=?) AND ORG=?");
ps = con.prepareStatement(sql.toString());
ps.setString(1, id);
ps.setString(2, id);
ps.setString(3, org);

密码

try {
  log.debug("Creating Query");
  StringBuffer sql = new StringBuffer();
  sql.append("SELECT * FROM Table WHERE (ID1=? OR ID2=?) AND ORG=?");
  log.debug("Query created: " + sql.toString()); //Don't get here
  ps = con.prepareStatement(sql.toString());
  ps.setString(1, id);
  ps.setString(2, id);
  ps.setString(3, org);
  log.debug("Query Created!!!!");
  con = getConnection();
} catch (Exception e) {
  log.error("Could not create statement in methodXXX");
  //Returns null in e.getMessage()
  throw new Exception("Could not create query: " + e.getMessage()); 
}

//亨里克


共 (1) 个答案

  1. # 1 楼答案

    简单地使用下面的方法

    ps = con.prepareStatement("SELECT * FROM Tabel WHERE (ID1=? OR ID2=?) AND ORG=?");
    ps.setString(1, id);
    ps.setString(2, id);
    ps.setString(3, org)
    ResultSet rs=ps.executeQuery();
    while(rs.next())
    {
    //use your code to retrieve like rs.getString(1);
    }