不忘初心
最開始接觸寫代碼的時候,用的是C井,查數據庫直接硬編碼sql,挺難受的。
后來學習到EntityFramework,用起來是真香,都是強類型,各種智能提示,代碼寫起來極度舒適,效率起飛。
最近要用java搞項目,接觸了mybatis,玩的sql語句放xml,瞬間不香了。
一頓百度,想找個類似EntityFramework的類庫來查數據庫,找到mybatis-plus,
介紹是支持lambda查數據,再研究了下發現和自己想要的很不一樣,特別是多表多條件查的場景。
最后是自己動手,豐衣足食。
 
        使用方法
maven坐標
<dependency>
  <groupId>io.github.eeroom</groupId>
  <artifactId>nalu</artifactId>
  <version>2.4</version>
</dependency>
 
         
         
        默認約定
1、創建和數據庫表同名的poco類,類的字段名稱和表的列名稱一致
   對於字段的類型是枚舉的情況,數據庫必須是varchar,nalu才可以正常處理字段和列值之間的值映射
2、創建一個數據庫對應的dbcontext類,這個類需要繼承io.github.eeroom.nalu.DbContext。
3、當前支持的數據庫有mysql,mariadb,sqlserver。
e.g.
 
        
 
 
查,API列表
dbset 指定要查詢的表,每個查詢都從這個方法開始
select 指定要查詢的列,2個重載
join 連接表,有2個重載方法
where 篩選,支持簡單或復雜的where條件,任意函數,包括你的自定義函數,有多個重載方法
groupBy 指定分組
having 分組篩選,多個重載
orderBy 排序,順序
orderByDescending 排序,逆序
skipTake 分頁
toListByPaging 獲取分頁查詢結果,多個重載
toList 獲取查詢結果,不分頁,多個重載
e.g.
 
         
         
        
增,API列表
add 指定要新增的數據,支持批量,多個重載
setInsertCol 指定要賦值的列,對應sql語句中要set value的列,2個重載
saveChange 執行操作,可以指定事務隔離級別,2個重載,增刪改的任意多個組合在一次saveChange中則為一個事務進行執行
e.g.
 
        
刪,API列表
delete 指定要要刪數據的表或具體要刪的數據,支持批量,多個重載
where 篩選條件,支持簡單或復雜的where條件,任意函數,包括你的自定義函數,有多個重載方法
saveChange 執行操作,可以指定事務隔離級別,2個重載,增刪改的任意多個組合在一次saveChange中則為一個事務進行執行
e.g.
 
         
         
        
改,API列表
edit 指定要要修改的表或具體要修改的數據,支持批量,多個重載
setUpdateCol 指定要修改的列
where 篩選條件,支持簡單或復雜的where條件,任意函數,包括你的自定義函數,有多個重載方法
saveChange 執行操作,可以指定事務隔離級別,2個重載,增刪改的任意多個組合在一次saveChange中則為一個事務進行執行
e.g.
 
        
