com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获取在’?附近使用的正确语法。或MemberName
=吗?在第1行
MySQL无法理解
?SQL查询中的含义。这确实是无效的SQL语法。因此,某种程度上它并没有被取代
PreparedStatement。你猜怎么着?
PreparedStatement s = conn.prepareStatement(query);s.setInt(1, intValue);s.setString(2, strValue); rs = s.executeQuery(query); // Fail!
您正在用原始查询覆盖准备好的查询!您需要调用无参
PreparedStatement#executeQuery()方法而不是
Statement#executeQuery(String)。
PreparedStatement s = conn.prepareStatement(query);s.setInt(1, intValue);s.setString(2, strValue); rs = s.executeQuery(); // OK!
与该问题无关,您的代码正在泄漏资源。几个小时后,数据库将耗尽它们,并且您的应用程序将崩溃。要解决此问题,您需要遵循JDBC习惯语close
Connection,
Statement并
ResultSet在获取它们
finally的代码
try块中。有关详细信息,请参见JDBC基本教程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)