使用mybatis mysql插入中文時java.sql.SQLSyntaxErrorException: Unknown column 'XXX' ' in 'field list

        今天在開發視頻上傳功能模塊時,出現了這樣一個問題,報錯誤如下:

從如下幾個方面分析該問題:

1、數據源配置問題,是不是寫錯了數據庫名稱,導致表字段與mapper字段不匹配。---經檢查,無問題,排除該條。

2、數據庫字段與mapper字段不匹配。---逐個對過,無此問題。

3、查看編碼格式,發送請求的編碼與數據庫編碼是否一樣。---經過查看,完全一樣,UTF8。

4、檢查類與mapper文件的對應關係。--完全對照。

經過檢查以上多個方面,仍然出現該問題。耗時2個小時,終於發現問題所在。我把#{userName}的#全部修改爲$符號,就是這個“$”符號所導致的。如源碼所示:

此處原因找到,是我爲了防止中文字符的預編譯,才修改爲了"$"符號。修改爲“$”符號後,不再進行預編譯,而值裏面又包含有","等特殊的符號,所以在插入數據庫中時,會出現錯亂。

正確做法:如果字段中包含有文,在插入語句中,統一使用預編譯的“#”。在使用中文關鍵字查詢時,統一使用"$",預編譯後,中文會發生一些變化,中文關鍵字會查詢不到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章