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表达式后,代码更加简洁,但可读性会有所提升,要酌情使用。