面向初学者,带你快速上手 InterSystems IRIS 的编程语言
一、什么是 ObjectScript?
ObjectScript 是 InterSystems 公司为其数据库产品(如 Caché 和 IRIS)设计的一种类 SQL 的面向对象语言。它融合了过程式、面向对象编程和 SQL 查询的能力,广泛用于医疗、金融等行业构建高性能系统。
它不仅是一门语言,更是一套数据访问、类定义、服务构建的开发范式。
二、入门准备
1. 安装开发环境(推荐使用 VS Code)
-
安装 VS Code
-
安装插件:InterSystems ObjectScript
-
安装并运行 IRIS(可使用 Docker 版):
cssbash 复制编辑 docker run -d --name iris -p 52773:52773 -p 1972:1972 \ intersystemsdc/iris-community:latest
2. 登录管理界面
打开浏览器访问:
http://localhost:52773/csp/sys/UtilHome.csp
默认用户名密码:_SYSTEM / SYS
三、ObjectScript 的基本语法
1. Hello World 示例
csharp
objectscript
复制编辑
Class Demo.Hello Extends %Persistent
{
Method SayHello()
{
WRITE "你好,ObjectScript!", !
}
}
Class
:定义类,类似 Java、C#。Extends %Persistent
:表示这个类可以被持久化(即存储到数据库)。Method
:定义方法。WRITE
:输出内容到终端,!
表示换行。
调用方法(在终端或代码中):
scss
objectscript
复制编辑
DO ##class(Demo.Hello).SayHello()
2. 变量与类型
ObjectScript 是动态类型语言,也可以声明类型:
ini
objectscript
复制编辑
SET name = "小明"
SET age = 18
WRITE name, " 的年龄是 ", age, !
3. 条件与循环
sql
objectscript
复制编辑
IF age > 18 {
WRITE "成年人"
} ELSE {
WRITE "未成年人"
}
FOR i=1:1:5 {
WRITE "当前是第 ", i, " 次", !
}
4. 类属性与持久化
vbnet
objectscript
Class Demo.Person Extends %Persistent
{
Property Name As %String;
Property Age As %Integer;
}
创建并保存数据:
vbnet
objectscript
SET person = ##class(Demo.Person).%New()
SET person.Name = "小红"
SET person.Age = 22
DO person.%Save()
从数据库中读取:
ini
objectscript
SET id = 1
SET p = ##class(Demo.Person).%OpenId(id)
WRITE p.Name
四、操作数据库(SQL + 对象)
1. 使用对象操作数据
vbnet
objectscript
SET student = ##class(Demo.Person).%New()
SET student.Name = "张三"
SET student.Age = 30
DO student.%Save()
2. 使用 SQL 执行查询
vbscript
objectscript
SET sql = "SELECT Name, Age FROM Demo.Person WHERE Age > 20"
SET stmt = ##class(%SQL.Statement).%New()
DO stmt.%Prepare(sql)
SET rset = stmt.%Execute()
WHILE rset.%Next() {
WRITE rset.Name, " - ", rset.Age, !
}
五、构建 REST API(简版示例)
vbscript
objectscript
Class Demo.API.Person Extends %CSP.REST
{
XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/person" Method="GET" Call="GetAll"/>
</Routes>
}
ClassMethod GetAll() As %Status
{
SET tRS = ##class(%ResultSet).%New("Demo.Person:ListAll")
DO tRS.Execute()
DO %response.SetContentType("application/json")
DO %response.Write(tRS.%ToJSON())
QUIT $$$OK
}
}
配置完这个类之后,你就可以通过 http://localhost:52773/csp/yournamespace/demo/api/person
获取 JSON 格式的数据。
六、调试与工具使用
%Studio
/ VS Code 可用于编辑类%SYS
命名空间中包含系统函数WRITE
、ZWRITE
可用于查看变量DO ##class(ClassName).Method()
是类方法调用格式
七、推荐练习项目
- 📌 学会创建
Person
、Book
等类并进行增删改查 - 📌 学会用
SQL + Object
混合方式查询数据 - 📌 学会构建一个 REST API 暴露数据(GET/POST)
- 📌 尝试使用"全局变量"(Globals)存储结构化数据
八、资料推荐(附中文学习建议)
类型 | 链接 |
---|---|
官方入门教程 | learning.intersystems.com/ |
ObjectScript 文档 | docs.intersystems.com/irislatest/... |
中文交流社区 | community.intersystems.com(中英混合) |
VSCode 插件 | ObjectScript Extension |
九、学习建议
- ✅ 刚开始时多练
Class + SQL + 方法调用
的基础套路 - ✅ 通过 REST 项目实战来理解语言+框架能力
- ✅ 不要被奇怪的语法吓到(如
..
、$
、%
),每个符号有其意义 - ✅ 官方社区是最佳求助平台
我是桃夭,期待你的关注。