今天写项目,想着如何联多张表查询,并且还带条件,加上分页。
于是…
当当当当当!
就是它
mybatis-plus官方文档解释:
需要mybatis-plus版本 >= 3.0.7 param
参数名要么叫ew,要么加上注解@Param(Constants.WRAPPER) 使用${ew.customSqlSegment} 不支持Wrapper 内的entity生成where语句
条件构造器关系介绍:
我们可以知道 Wrapper 是条件构造抽象类,最顶端父类
当我们需要使用使用条件构造器Wrapper自定义查询条件。
/**
* @param page
* @param query
* @returnzz
*/
@Select("select f.id id,m.magazine_name magazine_name,f.frequency_end_date frequency_end_date,f.frequency_name frequency_name,count(f.id) count from ms_magazine m " +
"left join ms_frequency f on m.id = f.magazine_id " +
"left join ms_manuscript t on f.id = t.frequency_id " +
"${ew.customSqlSegment} ")
IPage<Progress> findProgress(Page<Progress> page, @Param(Constants.WRAPPER) Wrapper query);
注意:1、在sql语句的最后加上: ${ew.customSqlSegment}
2、 ** param 参数名要么叫ew 要么加上注解@Param(Constants.WRAPPER) **
3、使用${ew.customSqlSegment} 不支持 Wrapper 内的entity生成where语句
mapper方法:
List<MysqlData> getAll(Wrapper ew);
对应的xml文件中:
<select id="getAll" resultType="MysqlData">
SELECT * FROM mysql_data ${ew.customSqlSegment}
</select>
切记一个大点!!!!
wrapper的导包一定要是这个,很容易导包导错成java.sql
import com.baomidou.mybatisplus.core.conditions.Wrapper;