>我正在尝试使用 WHERE 子句在我的 Oracle 数据库中执行查询:
java.sql.Date today = new java.sql.Date(System.currentTimeMillis());
String sql = new StringBuilder("SELECT *")
.append("FROM USERNAME.MY_TABLE m")
.append("WHERE m.A_DATE_COLUMN = ?").toString();
PreparedStatement ps = con.prepareStatement(sql);
ps.setDate(1, today);
ResultSet rs = ps.executeQuery();
但是我不断收到错误:
SQL 命令未正确结束
当调用executeQuery()
时。 我知道这与设置我的参数有关,因为如果我不包含 WHERE 子句,查询运行良好并返回正确的数据。我正在查询的表只有一列类型为 DATE。
我尝试使用setString
而不是setDate
并在我用来创建查询的字符串中?
后添加一个分号,但据我了解我不想包含分号。
您需要添加空格:
String sql = new StringBuilder("SELECT * ")
.append("FROM USERNAME.MY_TABLE m ")
.append("WHERE m.A_DATE_COLUMN = ? ").toString();
追加后,查询如下所示。
SELECT *FROM USERNAME.MY_TABLE mWHERE m.A_DATE_COLUMN = ?
正确添加空格。
String sql = new StringBuilder("SELECT * ")
.append("FROM USERNAME.MY_TABLE m ")
.append("WHERE m.A_DATE_COLUMN = ?").toString();