对于准备好的语句,我遇到了一些问题,我通过语法相信。
我有以下代码
String query2="SELECT lname FROM school_student WHERE sid = ? ORDER BY sid;";
PreparedStatement ps = cn.prepareStatement(query2);
ps.setInt(1, 3);
ResultSet rs = ps.executeQuery(query2);
我遇到的问题是我收到此错误消息:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? ORDER BY sid' at line 1
然而,当我替换“?”在我的查询3中,查询工作正常,没有错误,并给我我想要的。我如何设置“?”的值似乎有问题。在我的查询?我使用了错误的语法吗?
答案 0 :(得分:7)
只需使用
ps.executeQuery();
(即使用不带任何参数的重载executeQuery()
方法)。您在准备语句时已经传递了查询。
答案 1 :(得分:2)
使用此查询: -
String query2 =“SELECT lname FROM school_student WHERE sid = “+ attribute +”ORDER BY sid;“;
并简单地使用
ps.executeQuery();
答案 2 :(得分:-1)
我认为在准备查询时它们是语法问题 试试这个...... String query2 =“SELECT lname FROM school_student WHERE sid = + variablename + ORDER BY sid;”