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