問題描述:
j博主在java開發過程中,通過讀取excel中表名和字段名,動態創建insert的SQL語句,在mysql可視化工具中執行此SQL語句時,一直提示“Error Code: 1054. Unknown column '字段名' in 'field list'。
明明數據庫的表中,存在此字段,為什么提示字段不存在。於是我就拿代碼生成的字段名和數據庫的字段名長度對比,好家伙,發現字段名相同,但長度不同,如下圖所示:
解決方法:
通過對比,長度不同說明是字符串編碼格式不對,java代碼中讀取excel表中字段名的編碼格式為帶BOM的utf8的,所以字段名是帶有符號,因此要保證生成的字段名長度和數據庫中字段名長度一致,則
需要通過一下代碼處理:
1 if (item.substring(0, 1).contains("\uFEFF")) { 2 item = item.substring(1); 3 }
經過此項處理后,生成的SQL語句則不會再報找不到字段的錯誤。