您好,登錄后才能下訂單哦!
這篇文章主要介紹了Mybatis操作數據時出現Unknown column 'XXX' in 'field list&報錯怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Mybatis操作數據時出現Unknown column 'XXX' in 'field list&報錯怎么解決文章都會有所收獲,下面我們一起來看看吧。
這個錯誤比較重要,而且很常見,故單獨進行說明:
Mybatis出現:Unknown column 'xxx' in 'field list'
先來看一下程序的內部:
dao.addUser("ll111", "ll11");// 添加用戶l main函數測試
//添加用戶 成功1 失敗0 public int addUser(String userPhoneNumber, String userPassword) throws IOException { //用戶的 手機號,姓名(默認手機號),密碼 User user = new User(userPhoneNumber, userPhoneNumber, userPassword); int result = mapper.addUser(user); System.out.println(result); sqlSession.commit(); return result; }
<!-- 添加用戶--> <insert id="addUser" parameterType="main.pojo.User"> INSERT INTO user(user_phone_number, user_name, user_password) VALUES (${userPhoneNumber}, ${userName}, '${userPassword}'); </insert>
錯誤原因:本身來說,三個字段都屬于String類型,但是在使用Mybatis時由于用法的錯誤,致使出現上圖的結果,即本來手機號和名字想作為字符串插入,但是xml里卻當成了字段名。如果是整數還好,String可以解析整數并且轉化為字符串,但是像字母和數字混合,編譯器就無法識別。
本質上來說,是Mybatis使用上的錯誤,不熟悉,理解其實現機理所致。同樣的問題,也會出現在其他語句中,所以在實現時注意數據傳輸的類型!!!
解決方法:也如上圖xml代碼所示,password的變量使用單引號括住,即可表示為字符串,所以實際上,應該這樣寫:
<!-- 添加用戶--> <insert id="addUser" parameterType="main.pojo.User"> INSERT INTO user(user_phone_number, user_name, user_password) VALUES ('${userPhoneNumber}', '${userName}', '${userPassword}'); </insert>
或者進行參數化表示:
<insert id="addUser" parameterType="main.pojo.User"> INSERT INTO user(user_phone_number, user_name, user_password) VALUES (#{userPhoneNumber}, #{userName}, #{userPassword}); </insert>
這種情況下,VALUES內容為VALUES(?,?,?) ,數據傳入時自動進行數據類型識別并填充,則沒有以上報錯。
關于“Mybatis操作數據時出現Unknown column 'XXX' in 'field list&報錯怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Mybatis操作數據時出現Unknown column 'XXX' in 'field list&報錯怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。