使用mybaits遇見有大寫的sql語句錯誤的bug分析
阿新 • • 發佈:2020-12-21
今天使用mybaits模擬一個登陸案例的時候出了bug,程式碼是老師給的在老師那執行沒有問題,但是自己跑一直出bug。
資料庫和要查詢的表如上圖
老師給的mapper對映語句如下
@Select("SELECT * FROM user WHERE username=#{username} AND password=#{password}")
public abstract List<User> login(User user);
解決過程如下:
發現user和password好像是sql裡面的預設關鍵字,如果要正確查詢需要使用下面的程式碼
SELECT * FROM `USER` WHERE username='admin' AND PASSWORD='123'
很明顯mybaits查詢時不會吧USER和PASSWORD像在資料庫中自動變為大寫,所以一直報錯,將語句中修改如下就能正常運行了
@Select("SELECT * FROM `USER` WHERE username=#{username} AND PASSWORD=#{password}")
public abstract List<User> login(User user);