Spring Boot使用版本html
<version>2.0.6.RELEASE</version>
jdk使用版本java
<java.version>1.8</java.version>
Mybatis-plus使用版本mybatis
<mybatis-plus.version>3.1.0</mybatis-plus.version>
Mybatis-plus使用的依賴app
<!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <!-- 代碼生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatis-plus.version}</version> </dependency>
以上是項目使用的環境背景。ide
須要實現的SQL以下:ui
select t1.CT_ID, t1.TITLE, t1.SUBTITLE, t1.CON, t1.CON_H5, t1.ABSTRACT_STRING, t1.AUTHOR, t1.CT_TIME, t1.KW, t1.IS_AUTODIS, t1.DIS_TIME, t1.AU_STATE, t1.PUB_STATE, t1.DEL_TAG, t1.PUB_OPT, t1.PUB_TIME, t1.LIKE_NUM, t1.READ_NUM, t1.COVER_PATH, t1.CONTENT_TYP, t1.URL, t1.IS_TIMEING, t1.TIMEING_DATE, t1.CRT_OPT, t1.CRT_TIME, t1.UPD_OPT, t1.UPD_TIME, t1.REMARK from PCM_ARTICLE t1 WHERE ( au_state = '1' OR au_state = '2' ) AND pub_state = '0' and t1.DEL_TAG = '0'
(com.baomidou.mybatisplus.core.conditions.query)LambdaQueryWrapper使用該對象實現對條件的拼接,具體實現方案參考下文。code
須要查閱LambdaQueryWrapper的使用方法,這裏須要用到Lambda表達式的用法,該例實現以下htm
queryWrapper.and(Wrapper -> Wrapper.eq(PcmArticle::getAuState, "1").or().eq(PcmArticle::getAuState, "2"));
效果以下:對象
WHERE ( au_state = '1' OR au_state = '2' )
若是此處SQL沒有括號,直接使用or便可get
queryWrapper.or();
參考資料:
https://mp.baomidou.com/guide/wrapper.html
有關Lambda表達式的部分能夠參照百度百科
https://baike.baidu.com/item/Lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F/4585794?fr=aladdin
Java8中一個Lambda的簡單例子:
//匿名內部類寫法 new Thread(new Runnable() { @Override public void run() { System.out.println("內部類寫法"); } }).start();
使用Lambda表達式後,效果:
//lambda 寫法 new Thread(() -> System.out.println("lambda寫法")).start();
使用Lambda表達式後,代碼更加簡潔,但可讀性會有所提升,要酌情使用。