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:59LocalDateTime 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,yhwzlFROM jcg_jgbgleft 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.jgbgidleft join jcg_gk gk on jcg_jgbg.njgkid = gk.idleft join sys_district dis on dis.districtId = jcg_jgbg.ship_districtleft join jcg_cy cy on cy.id = jcg_jgbg.czidwhere ship_district like '${districtLikeStr}%'<if test="ew.sqlSegment != null">and ${ew.sqlSegment}</if>ORDER by jgsj desc</select>
SQL执行结果:
以上内容仅供学习参考!