-
案例介绍本案例演示如何使用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
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
即将直播
热门标签