yudao-cloud 学习笔记

news2024/11/17 2:26:19

前端代码

浏览器打开 https://cloud.iocoder.cn/intro/
F12
执行代码

var aaa= $(".sidebar-group-items").find("a");
var ll=[];
var tt=[];
for(var i=0;i<aaa.length;i++ ){ 
  ll.push("https://doc.iocoder.cn"+ $(aaa[i]).attr("href"));
  tt.push($(aaa[i]).html());
}

在这里插入图片描述

对 ll 和 tt ,鼠标右键 copy object ,格式化字符串后 作为下面java参数的代码

java代码

import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpUtil;

import java.io.File;
import java.nio.charset.Charset;

public class YuDaoTest {
    public static void main(String[] args) {
        String[] urlList= new  String []  {"https://doc.iocoder.cn/intro/","https://doc.iocoder.cn/qun/","https://doc.iocoder.cn/video/","https://doc.iocoder.cn/feature/","https://doc.iocoder.cn/quick-start/","https://doc.iocoder.cn/quick-start-front/","https://doc.iocoder.cn/api-doc/","https://doc.iocoder.cn/technology/","https://doc.iocoder.cn/project-intro/","https://doc.iocoder.cn/dev-hot-swap/","https://doc.iocoder.cn/project-rename/","https://doc.iocoder.cn/delete-code/","https://doc.iocoder.cn/natapp/","https://doc.iocoder.cn/db-dameng/","https://doc.iocoder.cn/module-new/","https://doc.iocoder.cn/new-feature/","https://doc.iocoder.cn/new-feature/master-sub/","https://doc.iocoder.cn/new-feature/tree/","https://doc.iocoder.cn/resource-permission/","https://doc.iocoder.cn/data-permission/","https://doc.iocoder.cn/user-center/","https://doc.iocoder.cn/social-user/","https://doc.iocoder.cn/oauth2/","https://doc.iocoder.cn/saas-tenant/","https://doc.iocoder.cn/saas-tenant/dynamic/","https://doc.iocoder.cn/websocket/","https://doc.iocoder.cn/exception/","https://doc.iocoder.cn/validator/","https://doc.iocoder.cn/page-feature/","https://doc.iocoder.cn/file/","https://doc.iocoder.cn/excel-import-and-export/","https://doc.iocoder.cn/system-log/","https://doc.iocoder.cn/mybatis/","https://doc.iocoder.cn/mybatis-pro/","https://doc.iocoder.cn/dynamic-datasource/","https://doc.iocoder.cn/redis-cache/","https://doc.iocoder.cn/local-cache/","https://doc.iocoder.cn/async-task/","https://doc.iocoder.cn/util/","https://doc.iocoder.cn/unit-test/","https://doc.iocoder.cn/distributed-lock/","https://doc.iocoder.cn/idempotent/","https://doc.iocoder.cn/db-doc/","https://doc.iocoder.cn/captcha/","https://doc.iocoder.cn/cloud-debug/","https://doc.iocoder.cn/registry-center/","https://doc.iocoder.cn/config-center/","https://doc.iocoder.cn/gateway/","https://doc.iocoder.cn/rpc/","https://doc.iocoder.cn/job/","https://doc.iocoder.cn/message-queue/event/","https://doc.iocoder.cn/message-queue/redis/","https://doc.iocoder.cn/message-queue/rocketmq/","https://doc.iocoder.cn/message-queue/rabbitmq/","https://doc.iocoder.cn/message-queue/kafka/","https://doc.iocoder.cn/message-queue/cloud/","https://doc.iocoder.cn/distributed-transaction/","https://doc.iocoder.cn/server-protection/","https://doc.iocoder.cn/bpm/","https://doc.iocoder.cn/bpm/dameng/","https://doc.iocoder.cn/report/","https://doc.iocoder.cn/report/screen/","https://doc.iocoder.cn/pay/build/","https://doc.iocoder.cn/pay/alipay-pay-demo/","https://doc.iocoder.cn/pay/wx-pub-pay-demo/","https://doc.iocoder.cn/pay/wx-lite-pay-demo/","https://doc.iocoder.cn/pay/refund-demo/","https://doc.iocoder.cn/member/build/","https://doc.iocoder.cn/member/weixin-mp-login/","https://doc.iocoder.cn/member/weixin-lite-login/","https://doc.iocoder.cn/member/user/","https://doc.iocoder.cn/member/level/","https://doc.iocoder.cn/mall-preview/","https://doc.iocoder.cn/mall/build/","https://doc.iocoder.cn/mall/diy/","https://doc.iocoder.cn/mall/product-category/","https://doc.iocoder.cn/mall/product-property/","https://doc.iocoder.cn/mall/product-spu-sku/","https://doc.iocoder.cn/mall/product-comment/","https://doc.iocoder.cn/mall/trade-cart/","https://doc.iocoder.cn/mall/trade-order/","https://doc.iocoder.cn/mall/trade-aftersale/","https://doc.iocoder.cn/mall/trade-delivery-express/","https://doc.iocoder.cn/mall/trade-delivery-pickup/","https://doc.iocoder.cn/mall/trade-brokerage/","https://doc.iocoder.cn/mall/promotion-coupon/","https://doc.iocoder.cn/mall/promotion-combination/","https://doc.iocoder.cn/mall/promotion-seckill/","https://doc.iocoder.cn/mall/promotion-bargain/","https://doc.iocoder.cn/mall/promotion-record/","https://doc.iocoder.cn/mall/promotion-discount/","https://doc.iocoder.cn/mall/promotion-content/","https://doc.iocoder.cn/mall/statistics/","https://doc.iocoder.cn/erp-preview/","https://doc.iocoder.cn/erp/build/","https://doc.iocoder.cn/erp/product/","https://doc.iocoder.cn/erp/stock/","https://doc.iocoder.cn/erp/stock-in-out/","https://doc.iocoder.cn/erp/stock-move-check/","https://doc.iocoder.cn/erp/purchase/","https://doc.iocoder.cn/erp/sale/","https://doc.iocoder.cn/sale/finance-payment-receipt/","https://doc.iocoder.cn/crm-preview/","https://doc.iocoder.cn/crm/build/","https://doc.iocoder.cn/crm/clue/","https://doc.iocoder.cn/crm/customer/","https://doc.iocoder.cn/crm/business/","https://doc.iocoder.cn/crm/contract/","https://doc.iocoder.cn/crm/receivable/","https://doc.iocoder.cn/crm/product/","https://doc.iocoder.cn/crm/permission/","https://doc.iocoder.cn/crm/follow-up/","https://doc.iocoder.cn/mp/build/","https://doc.iocoder.cn/mp/account/","https://doc.iocoder.cn/mp/user/","https://doc.iocoder.cn/mp/tag/","https://doc.iocoder.cn/mp/message/","https://doc.iocoder.cn/mp/auto-reply/","https://doc.iocoder.cn/mp/menu/","https://doc.iocoder.cn/mp/material/","https://doc.iocoder.cn/mp/article/","https://doc.iocoder.cn/mp/statistics/","https://doc.iocoder.cn/sms/","https://doc.iocoder.cn/mail/","https://doc.iocoder.cn/notify/","https://doc.iocoder.cn/desensitize/","https://doc.iocoder.cn/sensitive-word/","https://doc.iocoder.cn/area-and-ip/","https://doc.iocoder.cn/dev-env/","https://doc.iocoder.cn/deployment-linux/","https://doc.iocoder.cn/deployment-docker/","https://doc.iocoder.cn/deployment-jenkins/","https://doc.iocoder.cn/https/","https://doc.iocoder.cn/server-monitor/","https://doc.iocoder.cn/vue3/dev-spec/","https://doc.iocoder.cn/vue3/route/","https://doc.iocoder.cn/vue3/icon/","https://doc.iocoder.cn/vue3/dict/","https://doc.iocoder.cn/vue3/components/","https://doc.iocoder.cn/vue3/util/","https://doc.iocoder.cn/vue3/config-center/","https://doc.iocoder.cn/vue3/crud-schema/","https://doc.iocoder.cn/vue3/i18n/","https://doc.iocoder.cn/vue3/debugger/","https://doc.iocoder.cn/vue3/format/","https://doc.iocoder.cn/vue2/dev-spec/","https://doc.iocoder.cn/vue2/route/","https://doc.iocoder.cn/vue2/icon/","https://doc.iocoder.cn/vue2/dict/","https://doc.iocoder.cn/vue2/components/","https://doc.iocoder.cn/vue2/util/","https://doc.iocoder.cn/vue2/config-center/","https://doc.iocoder.cn/changelog/2.1.0/","https://doc.iocoder.cn/changelog/2.0.1/","https://doc.iocoder.cn/changelog/2.0.0/","https://doc.iocoder.cn/changelog/1.9.0/","https://doc.iocoder.cn/changelog/1.8.3/","https://doc.iocoder.cn/intro/","https://doc.iocoder.cn/qun/","https://doc.iocoder.cn/video/","https://doc.iocoder.cn/feature/","https://doc.iocoder.cn/quick-start/","https://doc.iocoder.cn/quick-start-front/","https://doc.iocoder.cn/api-doc/","https://doc.iocoder.cn/technology/","https://doc.iocoder.cn/project-intro/","https://doc.iocoder.cn/dev-hot-swap/","https://doc.iocoder.cn/project-rename/","https://doc.iocoder.cn/delete-code/","https://doc.iocoder.cn/natapp/","https://doc.iocoder.cn/db-dameng/","https://doc.iocoder.cn/module-new/","https://doc.iocoder.cn/new-feature/","https://doc.iocoder.cn/new-feature/master-sub/","https://doc.iocoder.cn/new-feature/tree/","https://doc.iocoder.cn/resource-permission/","https://doc.iocoder.cn/data-permission/","https://doc.iocoder.cn/user-center/","https://doc.iocoder.cn/social-user/","https://doc.iocoder.cn/oauth2/","https://doc.iocoder.cn/saas-tenant/","https://doc.iocoder.cn/saas-tenant/dynamic/","https://doc.iocoder.cn/websocket/","https://doc.iocoder.cn/exception/","https://doc.iocoder.cn/validator/","https://doc.iocoder.cn/page-feature/","https://doc.iocoder.cn/file/","https://doc.iocoder.cn/excel-import-and-export/","https://doc.iocoder.cn/system-log/","https://doc.iocoder.cn/mybatis/","https://doc.iocoder.cn/mybatis-pro/","https://doc.iocoder.cn/dynamic-datasource/","https://doc.iocoder.cn/redis-cache/","https://doc.iocoder.cn/local-cache/","https://doc.iocoder.cn/async-task/","https://doc.iocoder.cn/util/","https://doc.iocoder.cn/unit-test/","https://doc.iocoder.cn/distributed-lock/","https://doc.iocoder.cn/idempotent/","https://doc.iocoder.cn/db-doc/","https://doc.iocoder.cn/captcha/","https://doc.iocoder.cn/cloud-debug/","https://doc.iocoder.cn/registry-center/","https://doc.iocoder.cn/config-center/","https://doc.iocoder.cn/gateway/","https://doc.iocoder.cn/rpc/","https://doc.iocoder.cn/job/","https://doc.iocoder.cn/message-queue/event/","https://doc.iocoder.cn/message-queue/redis/","https://doc.iocoder.cn/message-queue/rocketmq/","https://doc.iocoder.cn/message-queue/rabbitmq/","https://doc.iocoder.cn/message-queue/kafka/","https://doc.iocoder.cn/message-queue/cloud/","https://doc.iocoder.cn/distributed-transaction/","https://doc.iocoder.cn/server-protection/","https://doc.iocoder.cn/bpm/","https://doc.iocoder.cn/bpm/dameng/","https://doc.iocoder.cn/report/","https://doc.iocoder.cn/report/screen/","https://doc.iocoder.cn/pay/build/","https://doc.iocoder.cn/pay/alipay-pay-demo/","https://doc.iocoder.cn/pay/wx-pub-pay-demo/","https://doc.iocoder.cn/pay/wx-lite-pay-demo/","https://doc.iocoder.cn/pay/refund-demo/","https://doc.iocoder.cn/member/build/","https://doc.iocoder.cn/member/weixin-mp-login/","https://doc.iocoder.cn/member/weixin-lite-login/","https://doc.iocoder.cn/member/user/","https://doc.iocoder.cn/member/level/","https://doc.iocoder.cn/mall-preview/","https://doc.iocoder.cn/mall/build/","https://doc.iocoder.cn/mall/diy/","https://doc.iocoder.cn/mall/product-category/","https://doc.iocoder.cn/mall/product-property/","https://doc.iocoder.cn/mall/product-spu-sku/","https://doc.iocoder.cn/mall/product-comment/","https://doc.iocoder.cn/mall/trade-cart/","https://doc.iocoder.cn/mall/trade-order/","https://doc.iocoder.cn/mall/trade-aftersale/","https://doc.iocoder.cn/mall/trade-delivery-express/","https://doc.iocoder.cn/mall/trade-delivery-pickup/","https://doc.iocoder.cn/mall/trade-brokerage/","https://doc.iocoder.cn/mall/promotion-coupon/","https://doc.iocoder.cn/mall/promotion-combination/","https://doc.iocoder.cn/mall/promotion-seckill/","https://doc.iocoder.cn/mall/promotion-bargain/","https://doc.iocoder.cn/mall/promotion-record/","https://doc.iocoder.cn/mall/promotion-discount/","https://doc.iocoder.cn/mall/promotion-content/","https://doc.iocoder.cn/mall/statistics/","https://doc.iocoder.cn/erp-preview/","https://doc.iocoder.cn/erp/build/","https://doc.iocoder.cn/erp/product/","https://doc.iocoder.cn/erp/stock/","https://doc.iocoder.cn/erp/stock-in-out/","https://doc.iocoder.cn/erp/stock-move-check/","https://doc.iocoder.cn/erp/purchase/","https://doc.iocoder.cn/erp/sale/","https://doc.iocoder.cn/sale/finance-payment-receipt/","https://doc.iocoder.cn/crm-preview/","https://doc.iocoder.cn/crm/build/","https://doc.iocoder.cn/crm/clue/","https://doc.iocoder.cn/crm/customer/","https://doc.iocoder.cn/crm/business/","https://doc.iocoder.cn/crm/contract/","https://doc.iocoder.cn/crm/receivable/","https://doc.iocoder.cn/crm/product/","https://doc.iocoder.cn/crm/permission/","https://doc.iocoder.cn/crm/follow-up/","https://doc.iocoder.cn/mp/build/","https://doc.iocoder.cn/mp/account/","https://doc.iocoder.cn/mp/user/","https://doc.iocoder.cn/mp/tag/","https://doc.iocoder.cn/mp/message/","https://doc.iocoder.cn/mp/auto-reply/","https://doc.iocoder.cn/mp/menu/","https://doc.iocoder.cn/mp/material/","https://doc.iocoder.cn/mp/article/","https://doc.iocoder.cn/mp/statistics/","https://doc.iocoder.cn/sms/","https://doc.iocoder.cn/mail/","https://doc.iocoder.cn/notify/","https://doc.iocoder.cn/desensitize/","https://doc.iocoder.cn/sensitive-word/","https://doc.iocoder.cn/area-and-ip/","https://doc.iocoder.cn/dev-env/","https://doc.iocoder.cn/deployment-linux/","https://doc.iocoder.cn/deployment-docker/","https://doc.iocoder.cn/deployment-jenkins/","https://doc.iocoder.cn/https/","https://doc.iocoder.cn/server-monitor/","https://doc.iocoder.cn/vue3/dev-spec/","https://doc.iocoder.cn/vue3/route/","https://doc.iocoder.cn/vue3/icon/","https://doc.iocoder.cn/vue3/dict/","https://doc.iocoder.cn/vue3/components/","https://doc.iocoder.cn/vue3/util/","https://doc.iocoder.cn/vue3/config-center/","https://doc.iocoder.cn/vue3/crud-schema/","https://doc.iocoder.cn/vue3/i18n/","https://doc.iocoder.cn/vue3/debugger/","https://doc.iocoder.cn/vue3/format/","https://doc.iocoder.cn/vue2/dev-spec/","https://doc.iocoder.cn/vue2/route/","https://doc.iocoder.cn/vue2/icon/","https://doc.iocoder.cn/vue2/dict/","https://doc.iocoder.cn/vue2/components/","https://doc.iocoder.cn/vue2/util/","https://doc.iocoder.cn/vue2/config-center/","https://doc.iocoder.cn/changelog/2.1.0/","https://doc.iocoder.cn/changelog/2.0.1/","https://doc.iocoder.cn/changelog/2.0.0/","https://doc.iocoder.cn/changelog/1.9.0/","https://doc.iocoder.cn/changelog/1.8.3/"};

        String filePath="D:\\yudao-cloud\\";
        String[] titleList = new String[] {"简介", "交流群", "视频教程", "功能列表", "快速启动(后端项目)", "快速启动(前端项目)", "接口文档", "技术选型", "项目结构", "代码热加载", "一键改包", "删除功能", "内网穿透", "达梦数据库专属", "新建服务", "代码生成【单表】(新增功能)", "代码生成【主子表】", "代码生成(树表)", "功能权限", "数据权限", "用户体系", "三方登录", "OAuth 2.0(SSO 单点登录)", "SaaS 多租户【字段隔离】", "SaaS 多租户【数据库隔离】", "WebSocket 实时通信", "异常处理(错误码)", "参数校验", "分页实现", "文件存储(上传下载)", "Excel 导入导出", "系统日志", "MyBatis 数据库", "MyBatis 联表&amp;分页查询", "多数据源(读写分离)", "Redis 缓存", "本地缓存", "异步任务", "工具类 Util", "单元测试", "分布式锁", "幂等性(防重复提交)", "数据库文档", "验证码", "微服务调试(必读)", "注册中心 Nacos", "配置中心 Nacos", "服务网关 Spring Cloud Gateway", "服务调用 Feign", "定时任务 XXL Job", "消息队列(内存)", "消息队列(Redis)", "消息队列(RocketMQ)", "消息队列(RabbitMQ)", "消息队列(Kafka)", "消息队列(Cloud)", "分布式事务 Seata", "服务保障 Sentinel", "工作流(Flowable)会签、或签", "工作流(达梦适配)", "报表设计器", "大屏设计器", "功能开启", "支付宝支付接入", "微信公众号支付接入", "微信小程序支付接入", "支付宝、微信退款接入", "功能开启", "微信公众号登录", "微信小程序登录", "会员用户、标签、分组", "会员等级、积分、签到", "商城演示", "功能开启", "商城装修", "【商品】商品分类", "【商品】商品属性", "【商品】商品 SPU 与 SKU", "【商品】商品评价", "【交易】购物车", "【交易】交易订单", "【交易】售后退款", "【交易】快递发货", "【交易】门店自提", "【交易】分销返佣", "【营销】优惠劵", "【营销】拼团活动", "【营销】秒杀活动", "【营销】砍价活动", "【营销】满减送", "【营销】限时折扣", "【营销】内容管理", "【统计】会员、商品、交易统计", "ERP 演示", "功能开启", "【产品】产品信息、分类、单位", "【库存】产品库存、库存明细", "【库存】其它入库、其它出库", "【库存】库存调拨、库存盘点", "【采购】采购订单、入库、退货", "【销售】销售订单、出库、退货", "【财务】采购付款、销售收款", "CRM 演示", "功能开启", "【线索】线索管理", "【客户】客户管理、公海客户", "【商机】商机管理、商机状态", "【合同】合同管理、合同提醒", "【回款】回款管理、回款计划", "【产品】产品管理、产品分类", "【通用】数据权限", "【通用】跟进记录、待办事项", "功能开启", "公众号接入", "公众号粉丝", "公众号标签", "公众号消息", "自动回复", "公众号菜单", "公众号素材", "公众号图文", "公众号统计", "短信配置", "邮件配置", "站内信配置", "数据脱敏", "敏感词", "地区 &amp; IP 库", "开发环境", "Linux 部署", "Docker 部署", "Jenkins 部署", "HTTPS 证书", "服务监控", "开发规范", "菜单路由", "Icon 图标", "字典数据", "系统组件", "通用方法", "配置读取", "CRUD 组件", "国际化", "IDE 调试", "代码格式化", "开发规范", "菜单路由", "Icon 图标", "字典数据", "系统组件", "通用方法", "配置读取", "【v2.1.0】开发中", "【v2.0.1】2024-03-01", "【v2.0.0】2024-01-26", "【v1.9.0】2023-12-01", "【v1.8.3】2023-10-24"};
        for (int i = 0; i <urlList.length ; i++) {
            String s= HttpUtil.get(urlList[i]);
            File file = FileUtil.file(filePath+i+"."+titleList[i]+".html");
            FileUtil.writeString(s.replaceAll("<img src=\"/","<img src=\"https://cloud.iocoder.cn/"),file, Charset.forName("UTF-8"));
        }
    }

}

设置cookie

在JS里
https://cloud.iocoder.cn/assets/js/app.5a8cc3cb.js

 const n = "88974ed8-6aff-48ab-a7d1-4af5ffea88bb"
              , e = "cat";
            function s() {
                return (Cookies.get(n) || "").indexOf(e) >= 0
            }

Cookies.set("88974ed8-6aff-48ab-a7d1-4af5ffea88bb","cat")

可复用的代码

MyBatis Plus QueryWrapper 类

import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import org.springframework.util.StringUtils;

import java.util.Collection;

/**
 * 拓展 MyBatis Plus QueryWrapper 类,主要增加如下功能:
 * <p>
 * 1. 拼接条件的方法,增加 xxxIfPresent 方法,用于判断值不存在的时候,不要拼接到条件中。
 *
 * @param <T> 数据类型
 */
public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> {

    public LambdaQueryWrapperX<T> likeIfPresent(SFunction<T, ?> column, String val) {
        if (StringUtils.hasText(val)) {
            return (LambdaQueryWrapperX<T>) super.like(column, val);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> inIfPresent(SFunction<T, ?> column, Collection<?> values) {
        if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) {
            return (LambdaQueryWrapperX<T>) super.in(column, values);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> inIfPresent(SFunction<T, ?> column, Object... values) {
        if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) {
            return (LambdaQueryWrapperX<T>) super.in(column, values);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> eqIfPresent(SFunction<T, ?> column, Object val) {
        if (ObjectUtil.isNotEmpty(val)) {
            return (LambdaQueryWrapperX<T>) super.eq(column, val);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> neIfPresent(SFunction<T, ?> column, Object val) {
        if (ObjectUtil.isNotEmpty(val)) {
            return (LambdaQueryWrapperX<T>) super.ne(column, val);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> gtIfPresent(SFunction<T, ?> column, Object val) {
        if (val != null) {
            return (LambdaQueryWrapperX<T>) super.gt(column, val);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> geIfPresent(SFunction<T, ?> column, Object val) {
        if (val != null) {
            return (LambdaQueryWrapperX<T>) super.ge(column, val);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> ltIfPresent(SFunction<T, ?> column, Object val) {
        if (val != null) {
            return (LambdaQueryWrapperX<T>) super.lt(column, val);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> leIfPresent(SFunction<T, ?> column, Object val) {
        if (val != null) {
            return (LambdaQueryWrapperX<T>) super.le(column, val);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> betweenIfPresent(SFunction<T, ?> column, Object val1, Object val2) {
        if (val1 != null && val2 != null) {
            return (LambdaQueryWrapperX<T>) super.between(column, val1, val2);
        }
        if (val1 != null) {
            return (LambdaQueryWrapperX<T>) ge(column, val1);
        }
        if (val2 != null) {
            return (LambdaQueryWrapperX<T>) le(column, val2);
        }
        return this;
    }

    public LambdaQueryWrapperX<T> betweenIfPresent(SFunction<T, ?> column, Object[] values) {
        Object val1 = ArrayUtils.get(values, 0);
        Object val2 = ArrayUtils.get(values, 1);
        return betweenIfPresent(column, val1, val2);
    }

    // ========== 重写父类方法,方便链式调用 ==========

    @Override
    public LambdaQueryWrapperX<T> eq(boolean condition, SFunction<T, ?> column, Object val) {
        super.eq(condition, column, val);
        return this;
    }

    @Override
    public LambdaQueryWrapperX<T> eq(SFunction<T, ?> column, Object val) {
        super.eq(column, val);
        return this;
    }

    @Override
    public LambdaQueryWrapperX<T> orderByDesc(SFunction<T, ?> column) {
        super.orderByDesc(true, column);
        return this;
    }

    @Override
    public LambdaQueryWrapperX<T> last(String lastSql) {
        super.last(lastSql);
        return this;
    }

    @Override
    public LambdaQueryWrapperX<T> in(SFunction<T, ?> column, Collection<?> coll) {
        super.in(column, coll);
        return this;
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1506572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电动车窗开关中MOS管的应用解析

随着科技的不断发展&#xff0c;电动车窗系统已经成为现代汽车中不可或缺的一部分。而MOS&#xff08;金属氧化物半导体&#xff09;管的应用&#xff0c;为电动车窗开关注入了新的活力&#xff0c;极大地提高了其使用寿命和安全性。 一、MOS的优越性能 MOS管以其卓越的开关…

记录西门子:IO隔离SCL编程

在PLC变量中创建IO输入输出 在PLC类型中创建输入和输出&#xff0c;并将PLC变量的输入输出名称复制过来 创建一个FC块或者FB块 创建一个DB块 MAIN主程序中&#xff1a;

【JavaEE初阶系列】——计算机是如何工作的

目录 &#x1f388;冯诺依曼体系 ❗外存和内存的概念 ❗CPU中央处理器—人类当今科技领域巅峰之作之一 &#x1f6a9;如何衡量cpu &#x1f6a9;指令&#xff08;Instruction&#xff09; &#x1f388;操作系统&#xff08;Operating System&#xff09; &#x1f388;…

超越基础:提升你的数据采集策略与IP代理的高级应用

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

软件测试 需求

文章目录 1. 需求1.1 什么是需求1.2 为什么要有需求1.3 测试人员眼中的需求1.4 如何深入理解需求 2. 测试用例的概念2.1 什么是测试用例2.2 为什么要有测试用例 3. 软件错误&#xff08;BUG&#xff09;的概念4. 开发模型和测试模型4.1 软件的生命周期4.2 瀑布模型&#xff08;…

[SAP] ABAP注释快捷键修改

在使用ABAP编辑器的时候&#xff0c;原有的添加代码注释和取消代码注释的快捷键未生效&#xff0c;这时我们可以考虑对注释快捷键进行修改 在事务码SE38(ABAP编辑器)屏幕右下角&#xff0c;点击【Options选项】图标 在【键盘】|【命令】输入栏中输入"comment"关键字…

mac上更改vscode快捷键

以移动当前行代码为例 mac上的vscode&#xff0c;默认移动当前行代码的快捷键是⌥↑即option↑按键 现在我想改成command↑ 步骤如下 1.打开vscode-code-首选项-键盘快捷键 2.打开快捷键列表 3.输入move line&#xff0c;找到要改动的这个快捷键 当前行-右键-更改键绑定&…

LTspice(14) Noise仿真

LTspice(14) Noise仿真 好久没有更新LTspice的教程了&#xff0c;大家想了没&#xff1f; 截止目前LTspice已经更新到24.0.9。界面发生了一些变化&#xff0c;但主要功能并不受影响&#xff0c;新的版本改了UI&#xff0c;找东西更加方便了&#xff0c;界面如下图1所示。 图1…

JavaEE+springboot教学仪器设备管理系统o9b00-springmvc

本文旨在设计一款基于Java技术的教学仪器设备销售网站&#xff0c;以提高网站性能、功能完善、用户体验等方面的优势&#xff0c;解决现有教学仪器设备销售网站的问题&#xff0c;并为广大教育工作者和学生提供便捷的教学仪器设备销售渠道。本文首先介绍了Java技术的相关基础知…

checking file system on C

1、win7系统 开机检查C盘&#xff0c;虽然可以ESC取消检查&#xff0c;每次操作很麻烦&#xff0c;且没有意思 2、注册表清空BootExecute数值数据 1&#xff09;打开注册表 WinR &#xff08;快捷键&#xff09;输入“regedit”&#xff0c;回车 2&#xff09;位置HKEY_LOCAL…

怎么在运行框执行脚本和软件?

1.新建一个文件夹&#xff08;随便命名&#xff09; 2.右击此电脑点击属性 3.点击高级系统设置 4.点击环境变量 5.选中Path,点击编辑 6.点击编辑&#xff0c;粘贴你刚刚文件夹的地址 7.所有窗口全部点击确定 8.你可以把常用的软件快捷方式复制到文件夹里&#xff08;比如微…

QT画图功能

QT画图功能 每个QWidget都自带的功能&#xff0c;继承了QPainteDevice都可以使用QPainter来进行绘图。 画图需要调用paintEvent绘制事件&#xff0c;paintEvent事件时QWidget类自带的事件。 重写paintEvent事件。&#xff08;重写事件&#xff1a;如果父类有某个方法&#xff…

协程库项目—协程类模块

ucontext_t结构体、非对称协程 协程类 ucontext_t结构体 头文件中定义的四个函数&#xff08;getcontext(), setcontext(), makecontext(), swapcontext()&#xff09;和两个结构类型&#xff08;mcontext_t, ucontext_t&#xff09;在一个进程中实现用户级的线程切换。 其中…

MySQL进阶之(五)InnoDB数据存储结构之表空间

五、InnoDB数据存储结构之表空间 5.1 数据页加载的三种方式5.1.1 内存读取5.1.2 随机读取5.1.3 顺序读取 5.2 区5.2.1 为什么要有区&#xff1f;5.2.2 碎片区5.2.3 区的分类 5.3 段5.4 表空间5.4.1 独立表空间5.4.2 系统表空间 在数据页结构中提到过&#xff0c;页的上层结构中…

RN开发搬砖经验之-如何处理FlashList组件加载后调用scrollToIndex没有滚动指定位置

前言 如题&#xff0c;这里只能说是处理&#xff0c;起正向作用的临时方案&#xff0c;因为我也着实没搞懂这个BUG的具体原因&#xff0c;看github上有提相关的issuesFor long lists with different item types scrollToIndex does not work reliable&#xff0c;但看官方没有…

PLC的FC与FB模块程序的功能解析

前文讲了在西门子系列的PLC中四个程序模块的描述&#xff0c;从S7-1200PLC开始就有FC和FB程序块了&#xff0c;但在使用的时候&#xff0c;一些使用者还是不好理解&#xff0c;以至于不知道该如何选择。今天&#xff0c;我们就用大白话的方式给大家讲解FC与FB的功能。 1、FC与…

前端学习之列表标签

目录 有序列表 结果 无序标签 结果 数据标签 结果 有序列表 &#xff08;注&#xff1a;注释是解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </…

Image Demoireing with Learnable Bandpass Filters

一、简介 标题:Image Demoireing with Learnable Bandpass Filters(https://openaccess.thecvf.com/content_CVPR_2020/papers/Zheng_Image_Demoireing_with_Learnable_Bandpass_Filters_CVPR_2020_paper.pdf) 期刊:CVPR 时间:2020 作者:Bolun Zheng, Shanxin Yuan, …

Google浏览器122.下载驱动

打开网址&#xff1a;Chrome for Testing availability (googlechromelabs.github.io) 选择stable 选择对应的驱动就行

前后端交互理解 简易表白墙(servlet)

前后端交互理解 简易表白墙&#xff08;servlet&#xff09; 文章目录 前后端交互理解 简易表白墙&#xff08;servlet&#xff09;后端核心内容前后端交互接口约定后端代码展示 上期介绍过 Servlet API &#xff0c;本篇文章目的是借助 servlet 做出一个完整的网站。在一个网站…