我在JSP中使用JDBC和PostGreSQL。 我想读取具有给定标题的行的所有值并从文本字段解释但是AND运算符不起作用。
// some code
stmt = conn.createStatement();
res = stmt.executeQuery(
"SELECT * " +
"FROM album " +
"WHERE interpret = ? AND titel = ? " +
"ORDER BY interpret, titel ASC "
);
//... closte statements, etc.
我没有获得AND的语法异常。 你们有什么建议吗?
答案 0 :(得分:1)
您不能在使用createStatement
创建的语句中使用绑定变量。
PreparedStatement是你应该合作的。
使用:
stmt = conn.prepareStatement();
stmt.setString(1, interpretValue); //set the value for the first parameter to interpretValue
stmt.setString(2, titleValue); //second parameter
PreparedStatement
是执行SQL语句的首选方法,因为该语句是预编译的。这可能比Statement
更有效,特别是如果多次执行相同的查询。