写点什么

基于华为开发者空间,使用仓颉编程语言实现 SQL 脚本模板渲染工具

  • 2025-10-23
    中国香港
  • 本文字数:2406 字

    阅读完需:约 8 分钟

基于华为开发者空间,使用仓颉编程语言实现SQL脚本模板渲染工具

本案例由开发者:Changeden 提供

一、概述

1. 案例介绍

华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。


本案例基于华为开发者空间云主机的 CodeArts IDE for Cangjie 编辑器进行操作演示。我们拉取 sql_script 源代码,修改 main.cj 内容,测试该工具的能力。

2. 适用对象

  • 企业

  • 个人开发者

  • 高校学生

3. 案例时间

本案例总时长预计 60 分钟。

4. 案例流程


说明:


  1. 领取华为开发者空间 - 云主机 ,下载项目源码;

  2. 打开仓颉编辑器,导入项目,修改工程代码与配置;

  3. 运行项目,实现 SQL 脚本模板渲染。

5. 资源总览

本案例预计花费 0 元。


二、环境配置与资源领取

1. 开发者空间配置

面向广大开发者群体,华为开发者空间提供一个随时访问的“开发桌面云主机”、丰富的“预配置工具集合”和灵活使用的“场景化资源池”,开发者开箱即用,快速体验华为根技术和资源。


如果还没有领取云主机进入工作台界面后点击配置云主机,选择 Ubuntu 操作系统。



进入华为开发者空间工作台界面,点击打开云主机 > 进入桌面连接云主机。


2. 仓颉版本升级(可选)

当前案例代码基于仓颉 1.0.0 运行,可以在华为开发者空间云主机点打开终端命令窗口执行 cjc -v 查看仓颉版本是否为 1.0.0,如果不是可以选择参考《基于仓颉编程语言+DeepSeek实现智能聊天助手开发秘籍》案例中的仓颉版本升级步骤。

3. 获取代码

在云主机桌面点击左下角 File Manager,在/home/developer/目录下,空白处右键,选择创建文件夹,并将文件夹命名为demo



进入/home/developer/demo目录下,右键 Open Terminal Here,打开命令行窗口输入如下指令,下载项目源码到本地:


git clone https://gitcode.com/changeden/sql_script
复制代码


三、配置项目

1. 导入项目

在云主机桌面打开仓颉编辑器。在仓颉编辑器左上角选择文件 > 打开项目



找到上一步中代码下载到本地的路径,本案例中为:/home/developer/demo/sql_script,点右下角打开。


2. 编写 main 代码

打开项目后,在仓颉编辑器左侧项目工程目录中找到src/main.cj文件,将以下代码替换原代码。


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.add("isDel", false) params.add("field1", "None") params.add("field2", '"1234"') params.add("list", [1, 2, 3]) // 渲染SQL let sql = template.bind(params) println(sql)
return 0}
复制代码


3. 修改 cjpm.toml

云主机打开火狐浏览器,登录仓颉 gitcode 代码仓:https://gitcode.com/Cangjie/cangjie-stdx-bin/releases,下载stdx插件。



stdx 插件压缩包下载到本地后,打开压缩包所在的文件目录,使用 unzip 命令解压文件。



进入到/home/developer/Downloads/linux_aarch64_llvm/static/stdx目录下,这里就是我们所需要的 linux 版本的 stdx 插件。


在仓颉编辑器左侧项目工程目录中找到cjpm.toml文件,替换原配置项[target.aarch64-unknown-linux-gnu]path-option参数,参考如下。


[dependencies]
[package] cjc-version = "1.0.0" compile-option = "" description = "使用脚本构建SQL的工具" link-option = "" name = "sql_script" output-type = "executable" src-dir = "" target-dir = "" version = "0.1.6" package-configuration = {}
# 需要将stdx依赖路径添加到环境变量CANGJIE_STDX_PATH中
[target.x86_64-w64-mingw32] compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated -lcrypt32" [target.x86_64-w64-mingw32.bin-dependencies] path-option = ["${CANGJIE_STDX_PATH}"]
[target.x86_64-unknown-linux-gnu] compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated -ldl" [target.x86_64-unknown-linux-gnu.bin-dependencies] path-option = ["${CANGJIE_STDX_PATH}"]
[target.aarch64-unknown-linux-gnu] compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated -ldl" [target.aarch64-unknown-linux-gnu.bin-dependencies] path-option = ["/home/developer/Downloads/linux_aarch64_llvm/static/stdx"]
复制代码



修改完成后,Ctrl + S,然后选择 Yes


4. 运行项目

在仓颉编辑器右上方,点击编译配置选项,选择编辑配置



在运行/调试配置页面,左上角点“**+”,下拉选项中选择 Cangjie(cjdb) Debug > launch**。



保持默认配置,点应用,然后确定



在仓颉编辑器右上方,编译配置选项选择 Cangjie:launch,然后点右上角运行按钮。



控制台输出如下 SQL 语句:


select * from abcd a where is_del = false and field1 = 'None' or field2 = "1234" and field2 = "1234" and id in ( 1 , 2 , 3 )
复制代码

5. 特性

工具已支持如下特性,等着您来体验:


- 动态解析SQL脚本- 动态渲染SQL- 控制流脚本- 自定义渲染函数- 扫描基于Markdown语法编写的Mapper- 扫描基于XML语法编写的Mapper
复制代码


至此,基于仓颉编程语言实现 SQL 脚本模板渲染工具的演示已全部完成。


用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
基于华为开发者空间,使用仓颉编程语言实现SQL脚本模板渲染工具_云主机_华为云开发者联盟_InfoQ写作社区