实战第一步,修改配置文件,控制台输出日志

快速构建查询对象 LambdaQueryWrapper

LambdaQueryWrapper<OBJ> qry = Wrappers.<OBJ>lambdaQuery();
qry.eq(Value != null, OBJ::getXXX, Value);

生成主键ID

在某个实体属性上添加

    @TableId(value = "id",type = IdType.AUTO)

like 左、右、左右

    like(OBJ::getGrid,"专属"));

and 实际作用就是()

        LambdaQueryWrapper<OBJ> qry = Wrappers.<OBJ>lambdaQuery();
        qry.and(
                tmp -> tmp.eq(StringUtils.isNotBlank(gridOrgcode),OBJ::getGridOrgcode, gridOrgcode)
                        .or()
                        .eq(StringUtils.isNotBlank(gridUserName),OBJ::getGridUserName,gridUserName)
        );

or

        LambdaQueryWrapper<OBJ> or = new LambdaQueryWrapper<OBJ>()
                .or(wrapper -> wrapper
                        .eq(OBJ::getSourceObjInstId, instanceId)
                        .or().eq(OBJ::getTargetObjInstId, instanceId)
                )
                .eq(OBJ::getDeleted, (byte) 0);

count计数

排序

多个排序条件谁先调用,谁先出现在 SQL 的 ORDER BY 中,优先级就更高。

        LambdaQueryWrapper<OBJ> queryWrapper = new LambdaQueryWrapper<OBJ>();
        queryWrapper.orderByDesc(OBJ::getUpdateTime); // 降序
        queryWrapper.orderByAsc(OBJ::getCreateTime); // 升序

时间范围 gt大于 lt小于

        Date startDate = ...; // 设置开始时间
        Date endDate = ...;   // 设置结束时间

        LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.between(User::getCreateTime, startDate, endDate);

或者:
        LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.gt(User::getCreateTime, startDate).lt(User::getCreateTime, endDate);

eq 等于

ne 不等于 (not equals)

拼接SQL

        Date startDate = ...; // 设置开始时间
        Date endDate = ...;   // 设置结束时间
        LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.gt(User::getCreateTime, startDate).lt(User::getCreateTime, endDate);
        String sqlSegment = queryWrapper.getSqlSegment();
        // 这里的 sqlSegment 就是生成的 SQL 条件部分,类似于 "create_time > {0} AND create_time < {1}"
        // 然后您可以将 sqlSegment 与其他 SQL 语句拼接,以构建完整的 SQL 查询语句
        String completeSQL = "SELECT * FROM user WHERE " + sqlSegment;
        // 执行 completeSQL 查询操作

查询单个字段

本方法是 等于 字段名称。

        LambdaQueryWrapper<Obj> lambdaQueryChainWrapper =  Wrappers.<Obj>lambdaQuery()
                .select(Obj.class, info -> (info.getColumn().equals("production")
                );

查询多个字段

本方法是 排除 不要的字段。

        LambdaQueryWrapper<Obj> lambdaQueryChainWrapper =  Wrappers.<Obj>lambdaQuery()
                .select(Obj.class, info -> !(info.getColumn().equals("html") || info.getColumn().equals("json")))
                );

IN

注解开发!

查询构建的SQL

注意:只能获取Where条件的部分。

getTargetSql

        LambdaQueryWrapper<Obj> lambdaQueryChainWrapper =  Wrappers.<Obj>lambdaQuery()
        String targetSql = lambdaQueryChainWrapper.getTargetSql();

getSqlSegment

        LambdaQueryWrapper<Obj> lambdaQueryChainWrapper =  Wrappers.<Obj>lambdaQuery() 
        String sqlSegment = queryWrapper.getSqlSegment();
        // 这里的 sqlSegment 就是生成的 SQL 条件部分,类似于 "create_time > {0} AND create_time < {1}"
        // 然后您可以将 sqlSegment 与其他 SQL 语句拼接,以构建完整的 SQL 查询语句
        String completeSQL = "SELECT * FROM user WHERE " + sqlSegment;
        // 执行 completeSQL 查询操作
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤

免责声明:
本站文章旨在总结学习互联网技术过程中的经验与见解。任何人不得将其用于违法或违规活动!所有违规内容均由个人自行承担,与作者无关。