jeectboot 多表查询或者不是表字段数据查询

1、重写controller:

        要点:

                 1、将其他查询字符放置在请求参数中

                 2、将查询对象和其他查询字段放置在map中作为mybatis的查询参数

                 3、mapper第一个参数必须为page类型,其他字段可以不加@Param参数

                 4、如果是多个参数直接排列即可,如果是map类型,在xml中需要将对象.属性填写完整

        示例:

        

	@AutoLog(value = "测试查询-分页列表查询")
	@ApiOperation(value="测试查询-分页列表查询", notes="测试查询-分页列表查询")
	@GetMapping(value = "/list")
	public Result<?> queryPageList(TbTestSearch tbTestSearch,
								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
								   @RequestParam(name="other1",defaultValue = "") String other1,
								   HttpServletRequest req) {
		//QueryWrapper<TbTestSearch> queryWrapper = QueryGenerator.initQueryWrapper(tbTestSearch, req.getParameterMap());
		//Page<TbTestSearch> page = new Page<TbTestSearch>(pageNo, pageSize);
		//IPage<TbTestSearch> pageList = tbTestSearchService.page(page, queryWrapper);
		//return Result.OK(pageList);
		Page<TbTestSearch> page = new Page<TbTestSearch>(pageNo, pageSize);
        if (StringUtils.isEmpty(other1)) {
            QueryWrapper<TbTestSearch> queryWrapper = QueryGenerator.initQueryWrapper(tbTestSearch, req.getParameterMap());
			IPage<TbTestSearch> pageList = tbTestSearchService.page(page, queryWrapper);
            return Result.ok(pageList);
        } else {
			
            Map map = JSONObject.parseObject(JSONObject.toJSONString(tbTestSearch),Map.class);
            map.put("other1", other1);
            IPage<TbTestSearch> pageList = tbTestSearchService.pageByOther1(page, map);
            return Result.ok(pageList);
        }
	}

2、mapper文件:

        可以使用以下的两种写法

public interface TbTestSearchMapper extends BaseMapper<TbTestSearch> {

    IPage<TbTestSearch> pageByOther1(Page<TbTestSearch> page, Map<String,Object> map);

    IPage<TbTestSearch> pageByOther1(Page<TbTestSearch> page, String other, String other1);

}

3、xml文件:

注意: 参数写法 map和string的区别,map需要填写完整,在jeecgboot中参数字段类似:【page,map,string,param1,param2】,如果参数是对象,需要在xml中填写完整;例如:

map.other

<select id="pageByOther1"   parameterType="Map" resultType="org.jeecg.modules.demo.entity.TbTestSearch">
        SELECT *
        FROM  tb_test_search
        WHERE 1=1
        <if test="map.other!=null and map.other!=''">
            and other = #{map.other}
        </if>
        <if test="map.other1!=null and map.other1!=''">
            and create_by like CONCAT('%',#{map.other1},'%')
        </if>
    </select>


<!--
<select id="pageByOther1"   parameterType="String" resultType="org.jeecg.modules.demo.entity.TbTestSearch">
        SELECT *
        FROM  tb_test_search
        WHERE 1=1
        <if test="other!=null and other!=''">
            and other = #{other}
        </if>
        <if test="other1!=null and other1!=''">
            and create_by like CONCAT('%',#{other1},'%')
        </if>
    </select> -->

4、页面数据的展示:

        如果页面分页列表字段数据不是表中的字段,可以使用注解@TableField来区分,这样就可以在列表中展示了,

    /**其他*/
    @TableField(exist = false)
	@Excel(name = "其他1", width = 15)
    @ApiModelProperty(value = "其他1")
    private java.lang.String other1;

外键或者字典的显示参考: jeecgboot 列表外键或者指定值状态显示_limonero-CSDN博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值