文章
· 四月 15, 2021 阅读大约需 3 分钟

第 4 天:使用 InterSystems Objects 和 SQL 进行开发

我正在参加 Joel Solon 讲授的“使用 InterSystems Objects 和 SQL 进行开发”课程。 课程非常好,我将在这里分享一些从培训中总结的提示。

第 4 天的提示:

1. 所有数据都存储在global中,global名称以 ^ 开头。 global示例:^animal。 global可以有多个数据位置(“子数据”)。 示例:^animal("大象","吃草")。

2. 可从任意系统范围(命名空间)访问 ^%* global。

3. global使 IRIS 能够支持多模型数据(对象、关系、文档、多维等)。

4. 要查看global,请转到 Management Portal > Explorer > Globals > Select Global > View,或者在终端中输入 do ^%G 或 zwrite ^global。

5. 在持久类和 SQL 表之间有自动对应关系:

  • 包对应于是 SQL Schema;
  • 类是Table;
  • 属性是列;
  • 方法是存储过程(使用 sqlProc 时);
  • 类之间的关系是 SQL 外键约束(必须为双向)。
  • 对象是行。

6. 一个表可以对应多个类,但序列类serial是持久类表的一部分(没有特定的表)。

7. 一个类可以对应多个表。

8. 我们有一些类类型:

  • Non-registered:不是类对象(仅限方法的容器);
  • Registered:瞬态对象;
  • Persistent:类似于SQL表中持久化保存;
  • Serial:嵌入主持久化表中的持久表(Serial为嵌入式);
  • Datatype:非类对象用于执行新的验证和转换为基础数据类型。

9. 类的组成可包括:

  • 属性;
  • 方法;
  • Class queries:SQL Select 语句;
  • Parameters:配置类行为的用户常量或系统常量;
  • 外键:参照完整性;
  • 索引:提高性能并创建独特值;
  • 触发器:触发与持久性事件关联的方法;
  • XData:与该类关联的 XML 或 JSON 定义;
  • 存储:数据存储的描述。

10. 按照惯例,类的首字母大写。 示例:CountryOrigin。 参数均为大写。 示例:COLORNUMBER。

11. 类特性限定/配置一个类。 示例 [SqlTableName = Animal] 可设置SQL表名。 [Final] 不允许继承。 [Private] 不允许为非子类调用方法或使用属性。

12. IRIS 在内部生成 Get 和 Set 属性,这些属性不可见,但可以通过声明改变行为。

13. 可以重写超类的方法,为此,请重复类名、参数。 可以增加参数的数量,不可减少。

14. 使用 ##super() 调用基类方法。

15. 要创建抽象类,请使用 [Abstract] 并防止实例化。

16. 可以继承多个类。 例如,Class Person extends (%Persistent, %Animal)。 (Persistent 必须是 extends 中的第一个类,参见评论中 joel 的提示)

17. REST 是表述性状态转移。 它基于 HTTP 协议。 使用 HTTP 谓词:GET(选择)、POST(插入)、PUT(更新)和 DELETE(删除)。 

18. 要将您的类作为 REST 资源公开,请从 %CSP.REST 扩展。

19. 在 XData 块中使用 URLMap 配置 REST 服务的路由。 使用门户,创建一个 Web 应用程序,启用 REST 并指定 Dispatch 类。

20. %JSONAdaptor 提供了对象与 JSON 之间的转换。 使用 obj.%JSONImport(jsonObj) 将 DynamicObject 分配到对象。 使用 obj.%JSONExportToString(.jsonString) 将 JSON 字符串写入对象。

21. %JSON.Formatter 格式化 JSON 字符串以便人类阅读。

讨论 (0)1
登录或注册以继续