Lists of sObjects

DEX455 - Apex sObject 集合完整指南

📄 第 195 页 🎬 视频课程

课程章节介绍

同学们,我们来看一下关于 sObject 列表的几个要点,我会尽量说得简单好懂。 首先,Apex 里的列表(List)不光能存普通的数字、字符串这些简单类型,还能存各种各样的 sObject,比如客户(Account)、联系人(Contact)这些业务对象。这种 sObject 列表最大的好处就是能做,批量处理,。 打个比方,你用 SOQL 从数据库里查出一堆记录,直接把它们都放进一个列表里。接下来,如果你想把这些记录都插入到数据库里,或者批量更新,只需要对这一个列表执行一次 DML 操作(比如 `insert`)就行了,不用一条一条去循环处理,效率高很多。 当你执行插入操作的时候,Apex 会自动为列表里每一条新记录生成唯一的 ID,也就是 Salesforce 里的记录号,你不需要自己操心。 但是有一点需要特别注意:,列表里不能有重复的同一个对象实例,。举个例子,你创建了一个 Account 对象,然后把它的引用在列表里添加了两次,即使这个对象还没有 ID,还没存进数据库,这种列表在插入或更新时也会报错,系统不允许这么做。简单说,就是列表里的每个 sObject 都必须是独立的对象实例,不能把一个对象重复添加。 顺便说一下,声明 sObject 列表有两种写法,效果完全一样。一种是用标准的 List 写法,比如: ```apex List myAccounts = new List(); ``` 另一种是用数组式的方括号写法,像这样: ```apex Account[] myAccounts = new Account[]{}; ``` 两种你都可以用,看习惯就好。 总结一下: - 列表可以存 sObject,适合做批量 DML 操作; - 插入后系统自动分配 ID; - 列表里不能有重复的同一个对象实例; - 声明时既可以用 `List<...>`,也可以用数组符号 `[]`。 好,这就是关于 sObject 列表的基础内容,你理解了吗?

关键词

Apex Salesforce Developer Guide