關於使用Mybatis時實體類字段切記要使用包裝類型


  每週的博客從5月份有開始斷更了,看來堅持每週寫一篇博客缺失很難,不過從這周開始,除了一方面把之前的那幾周沒寫的博客補回來,另一方面從這周開始要真正逼自己的寫一篇博客,並爭取在7月份前搭建起自己的個人博客網站!好,廢話少說,接下來快速進入今天的話題。

  今天寫的博客還是寫自己開發過程中遇到的坑。相信大家在開發Java web應用時對Mybatis這個第三方ORM(對象關係映射)框架並不陌生,但在開發過程有沒有遇到坑呢?作者本人在開發過程就遇到這個坑,這個坑對自己的傷害挺大的😂這個坑具體是怎麼樣的呢?聽我慢慢描述。 首先在我的項目裏我定義瞭如下這個java entity類 - RiskSchemeNodeInfo。

在這裏插入圖片描述
   接着我定義了這個實體類的mapper類,並繼承了框架中的CommonsMapper公共類,這個公共類有着豐富靈活的增刪改查方法。如下圖所示
在這裏插入圖片描述
   緊接着我在某個類中使用到了這個mapper類的updateByPrimaryKeySelective方法,如下圖所示。誰知當我更新RiskSchemeNodeInfo這個類所對應的數據庫表字段時,發現available這個字段在控制檯打印的更新sql語句中居然沒有,正常來說應該是update xxxx set available = ?, xxx = ? … where xxx = ?這樣的形式,但是其它字段都有打印呀,就available這個字段沒有!我就納悶了。

在這裏插入圖片描述   經過再三思考,我把RiskSchemeNodeInfo中的available這個字段的數據類型由boolean改成了Boolean,也就是改爲了其包裝類型。如下圖所示:
在這裏插入圖片描述
   重啓了項目運行時發現居然可以了,原來是數據類型搞得鬼!大家在編寫java bean對象並應用到orm框架(如Mybatis或Hibernate等等)時,一定要切記將java bean類中所有字段的數據類型都寫成其包裝類型,也就是要寫Integer而不是int,其它數據類型以此類推!


   好,今天就講到這裏,早睡,晚安!

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