-
案例介绍本案例演示如何使用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
推荐直播
-
华为云码道Skill实战与极速交付,智能开发全链路实战2026/07/22 周三 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;姜浩-华为云HCDG核心组成员
直播深度解读华为云码道6月产品新特性,从Skill市场安装专家技能,带你零距离体验从需求,开发,审查,重构全链路闭环的开发过程。从零构建并交付一个完整项目,让您体验从代码提交到服务上线的“极速”之旅。
回顾中 -
聚开发者之力,创具身新未来2026/07/23 周四 15:00-17:00
张豪杰/程文/王军/刘新春/黄钦开 /张晓天
本次华为云具身智能开发平台CloudRobo培训面向具身智能开发者,带您全流程体验机器人本体R2C小时级接入、环境重建与轨迹生成仿真数据生产、PB级数据管理、数据评测、模型训推、强化学习和Benchmark一键评测等功能,并体验业界主流具身模型应用。
回顾中
热门标签