本案例由开发者:Changeden提供
一、概述
1. 案例介绍
华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。
本案例基于华为开发者空间云主机的CodeArts IDE for Cangjie编辑器进行操作演示。我们拉取sql_script源代码,修改main.cj内容,测试该工具的能力。
2. 适用对象
- 企业
- 个人开发者
- 高校学生
3. 案例时间
本案例总时长预计60分钟。
4. 案例流程

说明:
- 领取华为开发者空间 - 云主机 ,下载项目源码;
- 打开仓颉编辑器,导入项目,修改工程代码与配置;
- 运行项目,实现SQL脚本模板渲染。
5. 资源总览
本案例预计花费0元。
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 华为开发者空间 - 云主机 | 鲲鹏通用计算增强型 kc2 | 4vCPUs | 8G | Ubuntu | 免费 | 60 |
二、环境配置与资源领取
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脚本模板渲染工具的演示已全部完成。
6万+

被折叠的 条评论
为什么被折叠?



