溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mybatis操作數(shù)據(jù)時出現(xiàn)Unknown?column?'XXX'?in?'field?list&報錯怎么解決

發(fā)布時間:2023-04-19 16:07:33 來源:億速云 閱讀:416 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了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>

Mybatis操作數(shù)據(jù)時出現(xiàn)Unknown?column?'XXX'?in?'field?list&報錯怎么解決

Mybatis操作數(shù)據(jù)時出現(xiàn)Unknown?column?'XXX'?in?'field?list&報錯怎么解決

錯誤原因:本身來說,三個字段都屬于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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI