使用tk.mybatis快速開發curd
使用mybatis已經是可以快速開發程序了,對於單表的curd似乎是一種可抽象的結果,下面介紹tk.mybatis的使用方式。
maven引用
我使用的是這個版本,所以相關功能介紹也是這個版本。
使用where條件
當使用查詢條件的時候,我們可以使用mybatis的方式寫sql來解決,很多情況下,寫sql並不是一個特別簡單的情況,尤其是欄位多的時候,需要針對每個欄位進行判斷是否為空等等,寫起來是相當的多。
tk.mybatis提供了一套api,可以幫助我們省去很多操作。
首先需要創建example和criteria。Example的參數是對應表的類。criteria才是我們關注的對象,他有豐富的條件。
例如且等於
例如且等於
還有一些我們常見的操作
in操作和between操作
通過以上的方法,我們基本已經可以滿足對單表的條件比對操作了。
排序操作
排序操作設計的比較奇特,並不在criteria里,而是在example里。
排序的sql語句就寫在setOrderByClause中就可以了。
無論是增刪改查,調用的都是ByExample的方法。
坑點
我們在插入和查詢的時候都會使用對象來作為條件,但是如果對象里有null值,那麼其實他不是我們想插入的欄位,我們只想插入非null的。tk.mybatis默認沒有對insert等方法做處理,而是單獨開闢了一個insertSelective的方法。這個剛開始使用特別不舒服,一般都是insert包含了過濾,但是沒有需要專門使用insertSelective。其他的方法也類型。
使用查詢條件的時候,使用的是對象的欄位名,而不是表的列名。這個剛開始很容易抓混,不知道應該使用哪個。
當查詢條件特別多的時候,請寫sql。條件特別多的時候寫代碼特別容易抓混,而且由於條件特別多,不需要的部分太多了,例如criteria.andGreaterThan。這些最後都會成為干擾項,這種情況寫sql是清晰的方式。
沒有連表操作,這算是他的一個功能不足的情況,我們可以使用mybatis的連表操作,但是他確實不是一個好的寫法。這裡也建議直接寫sql。
※identityHashCode與偏向鎖
※設置 Nuget 本地源、在線私有源、自動構建打包
TAG:千鋒JAVA開發學院 |