https://github.com/abel533/Mapper
以一個基礎查詢為例子
很多時候會遇到這樣 的情況,例如:
如果平常的查詢條件,就使用常用的方法就能實現了,參考連接
https://blog.csdn.net/zeal9s/article/details/86659950
如果是復雜一點,需要稍微自定義的查詢呢?Mybatis是使用xml則可以直接套接括號,而example怎樣拼接括號呢?這就很尷尬了
不禁要問不加括號查詢的區別,區別就很大了,括號括起來代表那括號里面的條件已經合並為一個條件了,相當於上面的例子搜索只有兩個條件,如果沒有括號,則是代表查詢條件有三個,數據查詢出來就會不准確,所以Example的括號怎樣加呢?由於它不是直接控制sql的拼寫方式實現的,它是通過方法和對象反射到數據庫的sql的拼寫的,那么它有沒有一種方法可以實現括號的拼接,答案是肯定的。
理解需求:
需求:where查詢,需要支持 a and (b or c and d)or e
也就是b、c、d三個條件是或、且的關系,a與b、c、d條件是且的關系,然后和e是或的關系
方法一:通用example語法
多層條件結合查詢,各自創建自己的cirteria,再用and或者or方法去連接,后面的cirteria需要加入Example中去,第一個cirteria不需要加
方法二:Weekend語法(Weekend是高版本的通用mapper版本才有,而且需要java8語法支持,tkmapper需要3.5以上)
方法一和方法二執行的sql語句: