Salesforce入门教程(中文)-004 DML&数据库方法

1.使用DML
使用数据操作语言(缩写为DML)在Salesforce中创建和修改记录。
DML通过提供插入、更新、合并、删除和恢复记录的简单语句,提供了一种管理记录的简单方法。

由于Apex是一种以数据为中心的语言,并且保存在Lightning平台上,因此它可以直接访问Salesforce中的数据。
与其他需要额外设置才能连接到数据源的编程语言不同,使用Apex DML可以轻松地管理记录!
通过调用DML语句,您可以快速对Salesforce记录执行操作。

此示例将Acme帐户添加到Salesforce。
首先创建一个account sObject,然后将其作为参数传递给insert语句,insert语句将记录保存在Salesforce中。
// Create the account sObject 
Account acct = new Account(Name='Acme', Phone='(415)555-1212', NumberOfEmployees=100);
// Insert the account by using DML
insert acct;

2.DML语句

以下DML语句可用。
insert
update
upsert
delete
undelete
merge

每个DML语句都接受单个sObject或sObject列表(或数组)。
对sObject列表进行操作是处理记录的一种更有效的方法。

upsert和merge语句是Salesforce特有的,非常方便。
upsert DML操作在单个语句中创建新记录并更新sObject记录,使用指定字段确定现有对象的存在,如果未指定字段,则使用ID字段。
merge语句将最多三条相同sObject类型的记录合并到其中一条记录中,删除其他记录,并重新设置任何相关记录的父级。

自动分配给新记录的ID字段
插入记录时,系统为每个记录分配一个ID。
除了在数据库中持久化ID值之外,ID值还自动填充到在DML调用中用作参数的sObject变量上。

此示例显示如何获取与插入帐户对应的sObject上的ID。
// Create the account sObject 
Account acct = new Account(Name='Acme', Phone='(415)555-1212', NumberOfEmployees=100);
// Insert the account by using DML
insert acct;
// Get the new ID on the inserted sObject argument
ID acctID = acct.Id;
// Display this ID in the debug log
System.debug('ID = ' + acctID);
// Debug log result (the ID will be different in your case)
// DEBUG|ID = 001D000000JmKkeIAF

由于示例中的sObject变量包含DML调用后的ID,因此可以重用此sObject变量来执行进一步的DML操作,
例如更新,因为系统将能够通过匹配ID将sObject变量映射到其相应的记录。

您可以从数据库中检索记录以获取其字段,包括ID字段,但这不能用DML完成。
您需要使用SOQL编写一个查询。

3.Bulk DML

可以对单个sObject执行DML操作,也可以对sObject列表执行批量操作。
执行批量DML操作是推荐的方法,因为它有助于避免达到调控器限制,例如每个Apex事务150条语句的DML限制。
此限制旨在确保公平访问Lightning平台中的共享资源。
对sObject列表执行DML操作将计为一条DML语句,而不是每个sObject的一条语句。

本例通过在一次通话中插入联系人列表来批量插入联系人。
然后,样本也会批量更新这些联系人。

// Create a list of contacts
List conList = new List {
    new Contact(FirstName='Joe',LastName='Smith',Department='Finance'),
        new Contact(FirstName='Kathy',LastName='Smith',Department='Technology'),
        new Contact(FirstName='Caroline',LastName='

你可能感兴趣的:(Salesforce入门,数据库)