-
案例介绍本案例演示如何使用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
推荐直播
-
华为云码道-玩转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创作思路,一次讲透!
回顾中
热门标签