jeecg中高级查询的写法


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}“ 我们是将数据先查出来整理成一个新的表,然后又进行的高级查询。这样有利于查询的字段扩展。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus 3.3 中查询写法可以使用如下方式: 1. 根据主键查询单条记录 ```java User user = userMapper.selectById(1L); ``` 其中,`userMapper` 是一个继承了 `BaseMapper<User>` 的接口,可以通过 Spring 注入或者 MyBatis 的 XML 映射文件中配置。 2. 根据条件查询多条记录 ```java List<User> userList = userMapper.selectList(new QueryWrapper<User>() .eq("age", 18) .like("name", "Tom")); ``` 其中,`QueryWrapper` 是 MyBatis-Plus 提供的条件构造器,可以通过链式调用构建查询条件。`selectList` 方法会返回符合条件的所有记录列表。 3. 分页查询 ```java Page<User> page = new Page<>(1, 10); IPage<User> userPage = userMapper.selectPage(page, new QueryWrapper<User>() .eq("age", 18) .like("name", "Tom")); ``` 其中,`Page` 是 MyBatis-Plus 提供的分页对象,接收两个参数:当前页码和每页记录数。`selectPage` 方法会返回符合条件的分页对象,其中包含了符合条件的记录列表和分页信息。 4. 自定义 SQL 查询 ```java List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>() .select(User::getId, User::getName) .eq(User::getAge, 18) .like(User::getName, "Tom")); ``` 其中,`LambdaQueryWrapper` 是基于 Java 8 Lambda 表达式的条件构造器,可以通过方法引用构建查询条件。`select` 方法可以指定需要查询的列,可以使用实体类的属性名或者方法引用。`selectList` 方法会返回符合条件的所有记录列表。 以上是 MyBatis-Plus 3.3 中常用的查询写法,根据实际需求选择适合的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值