用JDBC連接數(shù)據(jù)庫,采用的是PreparedStatement進(jìn)行數(shù)據(jù)查詢,
執(zhí)行sql的時候出現(xiàn)問題:
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語句將問號替換成字符串確定是沒有問題可以執(zhí)行的宗弯。
其他項目同樣是這樣子查詢數(shù)據(jù)沒出問題购啄,就只有這個地方出了問題烤送,以為是項目有什么東西沒導(dǎo)進(jìn)來歼指,可是不科學(xué)啊咖摹,錯誤信息說的是sql語法出問題评姨。反正查半天不知道還有什么原因很煩。最后查到個跟我一樣問題的萤晴,發(fā)現(xiàn)是 ps.executeQuery(sql); 這里出了毛病吐句,去掉參數(shù)sql就好了。
就這問題折騰了一小時ヽ(o`皿′o)?
果然還是不夠細(xì)心硫眯,太急躁蕴侧。還要加油!
另外
關(guān)于MySQLSyntaxErrorException两入,除了其他語法錯誤净宵,最常見拋這個異常的原因是表名字段名用了mysql的關(guān)鍵字。