jeecg中高级查询的写法

本文介绍了Jeecg框架下如何实现前端与后端的高级查询功能。前端通过组装特定的数据结构,包括页数、每页条数、筛选字段和匹配规则等,向后端发送请求。后端在Controller中接收参数,使用AutoQueryGenerator生成QueryWrapper,并结合权限处理进行排序和分页查询。最后在Mapper和XML文件中完成具体的SQL拼接和执行。这种方式方便扩展查询字段,适用于复杂的查询场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


jeecg中高级查询的写法总结:

前端:

数据结构:

queryParam:{
		current: 1,//页数
		size: 50,//每页条数
		//queryType有:and,or
		//and(所有条件都要求匹配)or(条件中的任意一个匹配)
		queryType:'多items之间的规则',
		queryItems:[
				{
					field: "要筛选的字段",
					//rowType有:input,input-number,select,select-multiple,date等,可以不向后端传递
          			rowType:"字段的类型",
          			//rule有:
          			//eq(等于),like(包含),
          			//right_like(以..开始),left_like(以..结尾),
          			//in(在...中),ne(不等于),
          			//gt(大于),ge(大于等于),lt(小于),le(小于等于)
          			rule:'匹配规则',
          			val:'数据'
				},
		]
}

可以自己在js中组装该数据,也可以自己定义高级查询的组件,去组装该数据。

后端:

controller:

/**
     * 分页高级查询
     *
     * @param page
     * @param testEntity
     * @param commonQuery
     * @return
     */
    @GetMapping("/queryPage")
    @ApiOperation(value = "分页高级查询")
    public Result<IPage<TestEntity>> listPageAll(Page<TestEntity> page, TestEntity testEntity, CommonQuery commonQuery) {
        QueryWrapper<TestEntity> autoQueryWrapper = AutoQueryGenerator.initQueryWrapper(testEntity, commonQuery);
        QueryGenerator.applyPermissionWrapper(autoQueryWrapper, testEntity.getClass(), "");
        autoQueryWrapper.orderByDesc("create_time");
        return Res.ok(baseMapper.pageBills(page, autoQueryWrapper););
    }

前端传的参数中,current和size会被page接收,queryType和queryItems会被commonQuery接收。

mapper:

/**
     * 分页高级查询
     * @param page
     * @param ew
     * @return
     */
    Page<TestEntity> pageBills(Page<TestEntity> page, @Param("ew") QueryWrapper<TestEntity> ew);

@Param(“参数名”),表示给参数命名

xml:

<select id="pageBills" resultType="org.jeecg.modules.leasing.lease.dao.entity.TestEntity">
        select dto.* from(
            SELECT
                a.*,
                b.customers_name AS customersName,
                c.suppliers_name AS ownerName
            FROM
                lease_bills a
            LEFT JOIN base_customers b ON a.customers_code = b.customers_code
            LEFT JOIN base_suppliers c ON a.owner_code = c.suppliers_code
        ) dto
        ${ew.customSqlSegment}
    </select>

从xml中可以看到,”${ew.customSqlSegment}“ 我们是将数据先查出来整理成一个新的表,然后又进行的高级查询。这样有利于查询的字段扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值