mybatisPlus动态sql语句 ${ew.sqlSegment}
·
mybatis-plus的${ew.sqlSegment},${ew.sqlSelect},${ew.customSqlSegment}
ew是mapper方法里的@Param(Constants.WRAPPER) Wrapper queryWrapper对象
简答介绍:
${ew.sqlSelect}:拼接select SQL主体
@Select("select ${ew.sqlSelect} from asdf")
List<adsf> getAfsd(@Param(Constants.WRAPPER)QueryWrapper queryWrapper)
${ew.sqlSet}:拼接update SQL主体
@Update("update ${tableName} set ${ew.sqlSet} ${ew.customSqlSegment};")
boolean updateById(@Param("tableName") String tableName,@Param(Constants.WRAPPER) Wrapper wrapper);
${ew.sqlSegment}:拼接where后的语句
@Select("select * from asdf where ${ew.customSqlSegment}")
List<sdf> getAfsdf(@Param(Constants.WRAPPER)QueryWrapper queryWrapper)
${ew.customSqlSegment}:拼接where后的语句(包括where。需注意在动态SQL中勿处于<where></where>标签内)
@Select("select * from asdf ${ew.customSqlSegment}")
List<sdfa> getsdfg(@Param(Constants.WRAPPER)QueryWrapper queryWrapper)
以${ew.sqlSegment}为例:
controller.java里面组装好查询条件
QueryWrapper<Crz> queryWrapper = new QueryWrapper();
queryWrapper.eq("ispq", "-1");
String shusinessType = req.getParameter("sipBunessType");
String shpType = req.getParameter("shipType");
// 获取当前日期
LocalDate today = LocalDate.now();
// 获取当天的00:00:00(00点)
LocalDateTime startOfDay = today.atStartOfDay();
// 获取当天的23:59:59
LocalDateTime endOfDay = today.atTime(LocalTime.MAX);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedStart = startOfDay.format(formatter);
String formattedEnd = endOfDay.format(formatter);
queryWrapper.between("csj", formattedStart, formattedEnd);
String gkmc = req.getParameter("cwYmc");
if (StaticMethod.isNotEmpty(gkmc)) {
gkmc = jcgCySnapService.getJcgYgmc(gkmc);
queryWrapper.like("gkid", gkmc);
}
String yc = req.getParameter("ycmc");
if (StaticMethod.isNotEmpty(ycmc)) {
queryWrapper.like("ycmc", ycmc);
}
List<Cgrz> cgrzs = jgbgMapper.cgcywpqPage(queryWrapper);
mapper.java里面
IPage<Jz> jgrzList(Page<Jz> page, @Param("ew") Wrapper<Jz> queryWrapper,
@Param("yhpz") String yhpz,@Param("districtLikeStr") String districtLikeStr);
mapper.xml里面
<select id="jzList" resultType="org.jeecg.modules.ygl.entity.rz">
SELECT cy.xm as czxm,jcg_jgbg.ship_info_id as shipInfoId,jcg_jgbg.id as jcgId,dis.districtName,ycmc,jgsj,gk.gkmc,gk.gkmc sagkmc,sfczhybrdwdjb,insert_time,insert_user,yhpz,jgbgid,yhwzl
FROM jcg_jgbg
left join (select yhpz,jgbgid,sum(yhl) yhwzl from jcg_yh
<if test="yhpz != null">
where yhpz = #{yhpz}
</if>
group by jgbgid
) zl on jcg_jgbg.id=zl.jgbgid
left join jcg_gk gk on jcg_jgbg.njgkid = gk.id
left join sys_district dis on dis.districtId = jcg_jgbg.ship_district
left join jcg_cy cy on cy.id = jcg_jgbg.czid
where ship_district like '${districtLikeStr}%'
<if test="ew.sqlSegment != null">
and ${ew.sqlSegment}
</if>
ORDER by jgsj desc
</select>
SQL执行结果:

以上内容仅供学习参考!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)