错误原因:mysql执行语句出错。
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 '? and password = ?' at line 1
出错代码:
String sql = "select * from users where username = ? and password = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, u.getUserName());
ps.setString(2, u.getPassWord());
rs = ps.executeQuery(sql);
出错原因:
查看帮助文档中的PreparedStatement类中的executeQuery方法描述
-
ResultSetexecuteQuery()执行此
PreparedStatement对象中的SQL查询,并返回查询生成的ResultSet对象。
可以看到此方法不需要传参,因此修改为:
String sql = "select * from users where username = ? and password = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, u.getUserName());
ps.setString(2, u.getPassWord());
rs = ps.executeQuery();
这篇博客探讨了在Java后端开发中遇到的MySQLSyntaxErrorException,具体表现为执行SQL语句时出现错误。错误信息指出在SQL语法的某一行附近存在错误。问题源于PreparedStatement的executeQuery方法使用不当,原始代码尝试传递参数。根据executeQuery方法的文档,该方法不接受参数。解决方案是修正调用方式。
3万+

被折叠的 条评论
为什么被折叠?



