文章目錄
1、條件構造器
說明:
- 以下出現的第一個入參boolean condition表示該條件是否加入最后生成的sql中
- 以下代碼塊內的多個方法均為從上往下補全個別boolean類型的入參,默認為true
- 以下出現的泛型Param均為Wrapper的子類實例(均具有AbstractWrapper的所有方法)
- 以下方法在入參中出現的R為泛型,在普通wrapper中是String,在LambdaWrapper中是函數(例:Entity::getId,Entity為實體類,getId為字段id的getMethod)
- 以下方法入參中的R column均表示數據庫字段,當R具體類型為String時則為數據庫字段名(字段名是數據庫關鍵字的自己用轉義符包裹!)!而不是實體類數據字段名!!!,另當R具體類型為SFunction時項目runtime不支持eclipse自家的編譯器!!!
- 以下舉例均為使用普通wrapper,入參為Map和List的均以json形式表現!
- 使用中如果入參的Map或者List為空,則不會加入最后生成的sql中!!!
2、QueryWrapper
說明:
繼承自 AbstractWrapper ,自身的內部屬性 entity 也用於生成 where 條件
及 LambdaQueryWrapper, 可以通過 new QueryWrapper().lambda() 方法獲取
給之后測試提供參考
注意:7號數據已經被邏輯刪除了
2.1、eq、ne
eq:等於,ne:不等於
2.2、gt、ge、lt、le
gt:大於,ge:大於等於,lt:小於,le:小於等於
2.3、between、notBetween
between:在值1和值2之間,notBetween:不在值1和值2之間
2.4、like、notLike、likeLeft、likeRight
like:’%值%’,notLike:’%值%’,likeLeft:’%值’,likeRight:'值%'
2.4、isNull、isNotNull
isNull:字段 IS NULL,isNotNull:字段 IS NOT NULL
2.5、in、notIn
in:字段 IN (v0, v1, …),notIn:字段 NOT IN (value.get(0), value.get(1), …)
2.5、inSql、notInSql
inSql:字段 IN ( sql語句 ),notInSql:字段 NOT IN ( sql語句 )
2.6、or、and
or:拼接 OR,AND 嵌套
注意事項:
主動調用or表示緊接着下一個方法不是用and連接!(不調用or則默認為使用and連接)
不使用and默認就是and連接
2.6、exists、notExists
exists:拼接 EXISTS ( sql語句 ),notExists:拼接 NOT EXISTS ( sql語句 )
2.7、orderByAsc、orderByDesc
orderByAsc:排序:ORDER BY 字段, … ASC,orderByDesc:排序:ORDER BY 字段, … DESC