用JDBC连接数据库,采用的是PreparedStatement进行数据查询,
执行sql的时候出现问题:
Caused by: com.mysql.jdbc.exceptions.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 '?' at line 1
conn = JdbcUtils.getConn();
String sql = "select * from t_user where username=? ";
ps = conn.prepareStatement(sql);
ps.setString(1, "test1");
ps.executeQuery(sql);
sql语句将问号替换成字符串确定是没有问题可以执行的。
其他项目同样是这样子查询数据没出问题,就只有这个地方出了问题,以为是项目有什么东西没导进来,可是不科学啊,错误信息说的是sql语法出问题。反正查半天不知道还有什么原因很烦。最后查到个跟我一样问题的,发现是 ps.executeQuery(sql); 这里出了毛病,去掉参数sql就好了。
就这问题折腾了一小时ヽ(o`皿′o)ノ
果然还是不够细心,太急躁。还要加油!
另外
关于MySQLSyntaxErrorException,除了其他语法错误,最常见抛这个异常的原因是表名字段名用了mysql的关键字。