当前位置: 首页 > news >正文

无极低码SQL模板引擎使用教程示例,自己手撸一个sql模板引擎进行动态sql生成。

无极低码 :https://wheart.cn

无极低码SQL模板使用教程

一、模板结构与规则

无极低码SQL模板通过简洁的Markdown格式,使SQL语句具有更强的灵活性和适应性,简化了根据业务需求定制SQL的过程。

无极低码SQL模板是一种基于Markdown格式的特殊SQL语句表示方式,它利用符号作为动态条件的标识符,使得SQL语句能够在运行时根据变量值动态生成。

下面是无极低码SQL模板的一般结构:

select方法名,用于定位执行语句
===分隔符
sql语句,为查询输出前端的值,where 1=1 结束 也可以直接跟参数
∮bypositioncode为动态参数
与下一个sql之间使用“;”分割
∮byIn_id表示非空时拼接如下sql
 and id in('#byIn_id#')“#byIn_id#”会被替换为实际值
动态拼接时间查询条件
∮bystartpubTime&&byendpubTime
and  pub_time between '#bystartpubTime#' and '#byendpubTime#'
动态拼接模糊查询
∮byname
and  name like'%#byname#%'

二、动态条件的应用

  • 对于每个开头的条件行,如果关联的变量存在且非空,那么该行条件将被包含在最终执行的SQL查询中。
  • 如果变量不存在或为空,则对应的SQL条件将被忽略。

三、示例sql模板

select
===
select positioncode ,id,positionname,picurl ,pichref ,pictitle ,picdes ,sort  from travelpositionpics where 1=1 
∮bypositioncodeand positioncode=#bypositioncode#
∮bypositionnameand positionname='#bypositionname#'
∮bypicurland picurl='#bypicurl#'
∮bypichrefand pichref='#bypichref#'
∮bypictitleand pictitle='#bypictitle#'
∮bypicdesand picdes='#bypicdes#'
∮bysortand sort=#bysort#
;selectOneByid
===
select positioncode ,picurl ,pichref ,pictitle ,picdes ,sort  from travelpositionpics where 1=1 
∮bypositioncodeand positioncode=#bypositioncode#
∮bypicurland picurl='#bypicurl#'
∮bypichrefand pichref='#bypichref#'
∮bypictitleand pictitle='#bypictitle#'
∮bypicdesand picdes='#bypicdes#'
∮bysortand sort=#bysort#
;delete
===
delete  from travelpositionpics where 1=1 
∮bypositioncodeand positioncode=#bypositioncode#
∮bypicurland picurl='#bypicurl#'
∮bypichrefand pichref='#bypichref#'
∮bypictitleand pictitle='#bypictitle#'
∮bypicdesand picdes='#bypicdes#'
∮bysortand sort=#bysort#
∮byIn_idand id in('#byIn_id#')
;insert
===
insert ignore into travelpositionpics(positioncode,positionname,picurl,pichref,pictitle,picdes,sort) VALUES(#positioncode#,'#positionname#','∮#picurl#','#pichref#','#pictitle#','#picdes#',#sort#);update
===
update travelpositionpics set 
∮positioncodepositioncode=#positioncode#,
∮positionnamepositionname='#positionname#',
∮picurlpicurl='#picurl#',
∮pichrefpichref='#pichref#',
∮pictitlepictitle='#pictitle#',
∮picdespicdes='#picdes#',
∮sortsort=#sort#where 1=1 
∮bypositioncodeand positioncode='#bypositioncode#'
∮bypicurland picurl='#bypicurl#'
∮bypichrefand pichref='#bypichref#'
∮bypictitleand pictitle='#bypictitle#'
∮bypicdesand picdes='#bypicdes#'
∮byidand id=#byid#
∮bysortand sort='#bysort#'

相关文章:

无极低码SQL模板引擎使用教程示例,自己手撸一个sql模板引擎进行动态sql生成。

无极低码 :https://wheart.cn 无极低码SQL模板使用教程 一、模板结构与规则 无极低码SQL模板通过简洁的Markdown格式,使SQL语句具有更强的灵活性和适应性,简化了根据业务需求定制SQL的过程。 无极低码SQL模板是一种基于Markdown格式的特殊…...

Python学习(一)

Python环境下载安装 安装略 验证安装结果与编写第一个Python程序...

Day62:WEB攻防-PHP反序列化CLI框架类PHPGGC生成器TPYiiLaravel等利用

目录 反序列化链项目-PHPGGC&NotSoSecure NotSoSecure(综合类) PHPGGC(单项类) 反序列化框架利用-ThinkPHP&Yii&Laravel [安洵杯 2019]iamthinking Thinkphp V6.0.X 反序列化 CTFSHOW 反序列化 267 Yii2反序列化 CTFSHOW 反序列化 271 Laravel反序列化 知识…...

运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning

运动想象迁移学习系列:EEGNet-Fine tuning 0. 引言1. 主要贡献2. 提出的方法2.1 EEGNet框架2.2 微调 3. 实验结果3.1 各模型整体分类结果3.2 算法复杂度比较3.3 不同微调方法比较 4. 总结欢迎来稿 论文地址:https://www.nature.com/articles/s41598-021-99114-1#cit…...

java中获取字符串中满足正则表达式的元素集合

目录 1.说明 2.从"as1285dfSWE45"中提取单个小写字母 3.从"aHs12DF85dfSWE45"中提取连续大写字母 4.从"[1024]*100-52[587] [24$]"中提取[]中的数字 5.总结 1.说明 在开发中有时需要从字符串中提取特定的字符,如下:…...

HTTPS总结

密码学基础 在正式讲解HTTPS协议之前,我们首先要知道一些密码学的知识。 明文: 明文指的是未被加密过的原始数据。 密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密&#xf…...

Linux之基础IO

1.C语言中的文件操作函数 文件的打开 path为文件路径,mode为打开方式,它们都是字符串。 代码演示: 此时,当前目录中并没有log.txt文件,但是没关系,fopen会在当前路径下创建log.txt文件。 简单来说&#xf…...

【SpringSecurity】十六、OAuth2.0授权服务器、资源服务器的配置(理论部分)

文章目录 0、OAuth2服务端结构1、授权服务配置2、授权服务器 ⇒ 配置客户端详情3、授权服务器 ⇒ 管理令牌配置4、授权服务器:配置端点访问的安全约束5、资源服务器配置 相关📕: 【OAuth2授权服务器配置完整Demo】 0、OAuth2服务端结构 OAu…...

AtCoder Beginner Contest 346

D - Gomamayo Sequence 状态DP 题意:给定一个长度为n的01字符串,使得只存在一组s[i]s[i1] 其余都是不同的,若使0改变为1 会花相应的费用 a[i] 求最小值 思路:数据为2e5数据太大,贪心不可以想到dp--状态dp 构造01串…...

Arduino智能家居

文章目录 一、接线框图1、下载fritzing 二、Arduino IDE 下载三、实现代码 一、接线框图 1、下载fritzing https://github.com/fritzing/fritzing-app/releases打开的软件界面如下: 二、Arduino IDE 下载 官网地址 P.S. 如果upload代码过程中出现cant open de…...

吴恩达2022机器学习专项课程(一) 3.3 成本函数的公式

问题预览 模型的参数(w和b)有什么作用?不同的w和b对线性回归模型有什么影响?训练集里的y和线性回归模型预测的y(y帽)的区别是什么?成本函数的作用是什么?成本函数的公式是什么&…...

Day56-LNMP架构扩展为集群模式实战精讲

Day56-LNMP架构扩展为集群模式实战精讲 1. 企业级标准部署知乎产品wecenter1.1 部署知乎软件Wecenter 2. 企业级迁移数据库到独立服务器2.1 为什么要进行数据库的拆分2.2 数据库拆分架构演变过程,如下图所示2.3 数据库拆分环境规划2.4 数据库拆分架构详细步骤2.4 we…...

Windows 设置多显示器显示

Windows 设置多显示器显示 1. Windows 7 设置 HDMI 输出2. Windows 11 设置多显示器显示References 1. Windows 7 设置 HDMI 输出 2. Windows 11 设置多显示器显示 ​​​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

语言模型的原理、实战与评估

语言模型的原理、实战与评估是一个宽泛的话题,下面是对这三个方面简要概述: 语言模型的原理 语言模型(Language Model, LM)是一种统计模型,用于估计一段文本序列的概率分布。它的核心任务是给定一系列词语,计算出这些词语组合成一个完整句子或段落的概率。典型的语言模型…...

【Android 内存优化】Koom核心内存指标分析

文章目录 源码Runtime.getRuntime()/proc/self/status/proc/meminfo 附总结 获取内存的指标有很多,假如我们要写一个用于监控APP内存泄漏的框架的话,主要获取哪些指标呢? 这篇文章来研究下KOOM里面获取到是哪些指标。 下面正文开始&#xff…...

Spring相关框架八股

单例bean是线程安全的吗? AOP 事务失效 Bean生命周期 Bean循环依赖解决 MVC执行流程 自动装配原理 Spring常见注解 SpringMVC注解 SpringBoot注解 MyBatis执行流程 MyBatis延迟加载 MyBatis缓存 SpringCloud五大组件 注册中心Nacos、Eureka 负载均衡Ribbon 服务雪崩…...

RK3588开发笔记-v1.3.0-SDK文件系统分区添加

目录 目录 前言 一、分区文件 二、分区文件初始化 三、板级配置文件修改...

架构评估方法相关知识总结

一、架构评估中的重要概念 定义:软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。 常用系统架构评估的方式: 1. 基于调查问卷或检查表的方法:该方法的关键是设计好问卷或检查表。缺点是在很大 程度上依赖于评…...

常用ES标准

ES2015: 1.块级作用域const、let const声明对象可修改属性,但不能重新赋值对象。 2.解构赋值 const arr [a1, a2, a3]; const [a1, ...rest] arr; // rest [a2, a3];3.模板字符串 const date "星期一"; console.log(今天是${date};);4…...

Http中Host,Referer,Origin和Access-Control-Allow-Origin

Http中Host,Referer,Origin和Access-Control-Allow-Origin 文章目录 Http中Host,Referer,Origin和Access-Control-Allow-OriginHost定义特性作用 Referer定义特性作用 Origin定义特性作用 Access-Control-Allow-Origin定义特性作用…...

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...