### The error occurred while setting parameters, MyBatis框架使用報錯原因及解決辦法


### 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`。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM