-
案例介绍本案例演示如何使用SQL脚本模板渲染工具,将开发者编辑的SQL脚本动态渲染成完整的SQL。如以下脚本例子脚本select * from abcd a where is_del = #{isDel} -- @if(field1 != null && !isEmpty(field1)) { and field1 = #{field1} -- @if(isNotEmpty(field2)) { or field2 = ${field2} -- @} -- @} and field2 = ${field2} and id in -- @for(separator=',' open='(' close=')' index="index" item='item' collection='list') { #{item} -- @} 渲染结果select * from abcd a where is_del = false and field1 = 'None' or field2 = "1234" and field2 = "1234" and id in ( 1 , 2 , 3 ) 案例内容1 概述1.1 案例介绍本案例基于华为开发者空间云主机的CodeArts IDE for Cangjie编辑器进行操作演示。我们拉取sql_script源代码,修改main.cj内容,测试该工具的能力。1.2 适用对象企业个人开发者学生1.3 案例时间本案例总时长预计20分钟。1.4 案例流程2 SQL脚本模板渲染工具的使用2.1 启动云主机2.1.1 点击打开云主机2.1.2 启动云主机桌面2.2 下载代码2.2.1 在桌面创建名为demo的目录2.2.2 打开命令行2.2.3 输入代码下载命令cd ~/Decktop/demo git clone https://gitcode.com/changeden/sql_script2.3 打开项目2.3.1 进入demo目录2.3.1 以CodeArts IDE for Cangjie打开项目2.4 编写测试代码2.4.1 打开src/main.cj2.4.2 修改代码package sql_script import sql_script.core.* import std.collection.* main(): Int64 { // 编写脚本 let script = ##" select * from abcd a where is_del = #{isDel} -- @if(field1 != null && !isEmpty(field1)) { and field1 = #{field1} -- @if(isNotEmpty(field2)) { or field2 = ${field2} -- @} -- @} and field2 = ${field2} and id in -- @for(separator=',' open='(' close=')' index="index" item='item' collection='list') { #{item} -- @} "## // 将脚本解析为模板 let template = fromSql(script) // 声明参数 let params = HashMap<String, ScriptParam>() params.put("isDel", false) params.put("field1", "None") params.put("field2", '"1234"') params.put("list", [1, 2, 3]) // 渲染SQL let sql = template.bind(params) println(sql) return 0 } 2.5 执行代码2.5.1 点击运行按钮2.5.1 查看控制台输出2.5.1 控制台输出select * from abcd a where is_del = false and field1 = 'None' or field2 = "1234" and field2 = "1234" and id in (1,2,3) 特性工具已支持如下特性,等着您来体验:[x] 动态解析SQL脚本[x] 动态渲染SQL[x] 控制流脚本[x] 自定义渲染函数[x] 扫描基于Markdown语法编写的Mapper[x] 扫描基于XML语法编写的Mapper至此,基于仓颉编程语言实现SQL脚本模板渲染工具的演示已全部完成。如果想要了解更多仓颉编程语言知识可以访问: https://cangjie-lang.cn我正在参加【案例共创】第4期 基于华为开发者空间+仓颉/DeepSeek/MCP完成应用构建开发实践 cid:link_0
-
全球根域名服务器分为IPv4和IPv6两种。在IPv4体系中,全球共有13台根服务器,其中1个主根服务器位于美国,其余12个为辅根服务器,分布在美国、欧洲和日本1。在IPv6体系中,全球有25台根服务器,中国写阶段部署了其中的4台,包括1台主根和3台辅根服务器12。中国根域名服务器现状根镜像服务器:中国部署了数十个根镜像服务器,遍布各大骨干网,承担了大量域名解析请求,提高了国内网络访问速度和稳定性34。“雪人计划”与IPv6根服务器:中国积极参与并推动了“雪人计划”,在全球16个国家完成25台IPv6根服务器的架设,其中中国部署了4台,包括1台主根和3台辅根服务器,增强了中国互联网的自主性和安全性25。网络安全与治理:中国建立了根区异常监测系统,实时感知国际根区解析状态,并能在必要时启动快速重路由策略,由国内调度体系接管流量,确保网络稳定运行3。综上所述,中国通过根镜像服务器和IPv6根服务器的布局,构建起了一道坚实的网络安全防线,增强了网络自主性和安全性。
-
增加控件和修改控件内容后无法保存,需要长时间等待,并且长时间等待后保存后控件依旧无效,只有这一个项目是这样其他的不是
-
云主机调用DeepSeek实现代码自动生成,默认/自定义 CPU架构:X86。但我的云主机为ARM,.为啥不能选择X86?
-
java 本地50秒,线上还是超时,是数据量太大的原因吗,我用了快读快写还是超时,崩溃了
-
读取完一个对象块之后,磁头是自动向后移动一位吗。比如有一个对象在磁盘的 1 单元,2单元,3单元。那么读取完该对象,即 rrr# 后,磁头在单元4的位置,对吗
-
java windows本地使用sample_extra数据进行测试70s可以跑完,但是线上测试依然time_out
-
本地windows运行70s但是提交一直time out
-
江山赛区排行榜刷新有问题,经常长时间不刷新
-
已经2025年了,咱先不奢求C++23了,能支持一下C++20吗?【感恩】【感恩】【感恩】
-
java windows 本地可以跑sample_practice.in, 但是提交之后出现unexpected_elon, 这个错误信息能给长一点吗
-
江山赛区的排行榜怎么不更新了
yd_221619699
发表于2025-03-20 14:48:14
2025-03-20 14:48:14
最后回复
yd_233688723
2025-03-24 09:07:25
437 11 -
请问关于这个可以透露吗,担心练习赛没问题到正式赛的时候time_out
-
比赛环境可以用华为的云主机进行配置吗需要满足以下环境:系统:基于x86的ubuntu 18.04CPU:4核可用CPU内存:8G可用内存(选手代码、判题器、判题平台共用)C/C++GNU Make 4.1cmake version 3.22.0gcc 7.3.0g++ 7.3.0 JavaJDK 1.8 Pythonpython 3.7.3您可以使用虚拟机安装基于x86的ubuntu 18.04。
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签