概述:用來記錄平時碰到的問題。
1.導包錯誤
問題:一直報找不到寫了SQL語句的.xml文件,明明文件都放在了正確的地方。
原因:導包錯誤,包括註解、繼承類的導包等。因爲Eclipse的自動聯想功能,很多時候就是直接回車,沒有注意導入包的路徑,再加上IDE裏面默認把import都收了起來,所以浪費了些時間。
2.mybatis的resultMap中的jdbcType的值要大寫
問題:好像是tomcat啓動階段就報錯了
原因:因爲mysql默認是大小寫不敏感,所以我一開始想當然的以爲jdbcType也大小寫不敏感,然後就被教做人了。
延伸:MySQL在Linux下數據庫名、表名、列名、別名大小寫規則是這樣的:
a.數據庫名與表名是嚴格區分大小寫的;
b.表的別名是嚴格區分大小寫的;
c.列名與列的別名在所有的情況下均是忽略大小寫的;
d.字段內容默認情況下是大小寫不敏感的。
3.用Navicat從Excel導入數據時的問題
問題:從Excel導入的數據中,有一列數據是由數字+字母組成的,導入數據庫中以後,除字母E以外的字母都被剔除了
可能的原因:一開始建表的時候,該字段被我設置成了int類型,後來重新建表,還是一樣的問題,後來不小心把navicat關了,再打開導入數據,問題解決。所以推測原因是navicat出了點小問題(平時我的navicat開得久了也會報內存地址xxxx無法訪問的警告),雖然後來改了數據庫字段,但是導入的時候,那一列的數據還是被當成了int來導入,字母E應該是被當作了科學記數法的E才得以保留。重啓大法好。
4.用fastjson將List解析成String時,List的值變成了地址
問題:同一個List中的兩個元素,元素中某個List變量是由同一個List賦值的,導致解析出的字符串的值是形如"$ref.xxx"的形式而不是具體的值。
原因:fastjson的引用檢測導致的,重複引用和循環引用都會導致這個問題,可以關掉:
JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect);