### Error querying database. Cause: java.sql.SQLSyntaxErrorException: 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 'delete,create_time,update_timeFROM tb_user WHERE user_id = 1' at line 1 ### The error may exist in com/lints/leying/dao/IUserDAO.java (best guess) ### The error may involve com.lints.leying.dao.IUserDAO.getUserByPK-Inline ### The error occurred while setting parameters ### SQL: SELECT user_id,user_name,user_password,user_nickname,user_email,user_gender,user_avatar,delete,create_time,update_timeFROM tb_user WHERE user_id = ?
在項目開發過程中,筆者遇到這個問題,JVM報錯大致意思就是SQL語法錯誤。
這里提供幾個解決的問題思路:
1.檢查sql語句,語法是否正確,最好的檢查方法就是將sql語句復制到查詢器中執行一遍。
2.檢查字段是否出現sql關鍵字!(比如delete,call),這個很重要,因為call在java中並不是關鍵字,但是在sql中是關鍵字!
3.檢查Mapper接口,參數名一定要對上!!! 否則運行時照樣報錯。
4.檢查Mapper接口代碼是否符合規范,mybaits動態注入參數使用“#”,而不是“$”符號。
我遇到的問題:sql語句中出現了mysql關鍵字,在IDEA中看了半天找不到錯誤,
復制sql到navicat中運行,一下找到錯誤。
解決辦法是在關鍵字delete,加上`delete`。