Experience Salesforce
Database Class in APEX
What You’ll Learn
- What Is Database Class In Apex?
- Database Class Methods
Topics
- What Is DML In Salesforce?
- Insert | APEX DML Standalone Statements
- Update | APEX DML Standalone Statements
- Upsert | APEX DML Standalone Statements
- Delete | Apex DML Standalone Statement
- Undelete | Apex DML Standalone Statement
- Merge | APEX DML Standalone Statements
- APEX DML Statements Best Practices
- Database Class in APEX
- Empty Recycle Bin
- Count Query | Method in Apex Database Class
- Lead Conversion | Method in Apex Database Class
- Transaction Control and Rollback
- Database Class Method Result Object
What Is Database Class In Apex?
In DML Statements, the whole DML results in an exception if there is an error or problem in any of the records. (DML Expection) which you can handle on your own, whereas in database class methods, we can specify whether or not to allow partial record passing if errors are encountered.
We can do so by passing an additional boolean parameter.
When this parameter is set as false and if a record fails the remainder of the DML operation can still succeed.
public static void main() {
List < Contact > conList = new List < Contact > ();
for (Integer i = 0; i < 10; i++) {
if (i == 5) conList.add(new Contact());
else conList.add(new Contact(lastname = ’ABC’ + 1));
}
insert conList; // Throws DML Exception
Database.insert(conList, false); // Does not throws exception if a record fails
}
Database.insert(conList);
Database.insert(conList, false);
Database Class Methods
1. Database.insert()
Ex:
List < Account > accountsToInsert = new List < Account > ();
Account accountToUpdate;
for (Integer i = 0; i < 3; i++) {
Account acc = new Account(Name = 'Simplilearn', BillingCity = 'New York');
accountsToInsert.add(acc);
}
Database.insert(accountsToInsert);
2. Database.update()
Ex :
Account accountToUpdate = [SELECT BillingCity FROM Account WHERE Name = 'Simplilearn'
LIMIT 1
];
accountToUpdate.BillingCity = 'San Francisco';
Database.update(accountToUpdate);
Account afterUpdate = [SELECT BillingCity FROM Account WHERE Id = : accountToUpdate.Id];
System.assertEquals(afterUpdate.BillingCity, 'San Francisco');
3. Database.upsert()
Ex:
Database.upsert(sObject / List < sObject > , externalIdField, allOrNone);
Note: If externalIdField is left blank then‘ Id’ field will be used as external id.
List < Account > accountsList = [SELECT Id, Name, BillingCity
FROM Account WHERE BillingCity = 'San Francisco'
];
for (Account acc: accountsList) {
acc.BillingCity = 'Las Vegas';
}
Account newAccount = new Account(Name = 'SimpliLearn', BillingCity = 'Palo Alto');
accountsList.add(newAccount);
Database.upsert(acctsList);
4. Database.delete()
Ex:
List < Account > accList = [SELECT Name FROM Account LIMIT 10];
Database.delete(accList, false);
Note: You cannot delete an account which have cases related to it.
5. Database.undelete()
Ex :
Database.undelete(): Ex: List < Account > accList = [SELECT Name FROM Account
WHERE isDeleted = true ALL ROWS
];
Database.undelete(accList, false);
6. Database.merge()
Syntax :
Database.merge(master_sObject, duplicate(sObject / List < sObject / ID / List < ID > ), allOrNone);
Ex :
List < Account > accList = [SELECT Name FROM Account LIMIT 3];
Account masterRecord = accList[0];
List < Account > dupList = new List < Account > ;
dupList.add(accList[1]);
dupList.add(accList[2]);
Database.merge(masterRecord, dupList);
Next Topic
Need Extra Support? Our FREE study materials have got you covered.
Our expert-prepared study materials provide the answers you need. Clear your doubts and improve your skills with detailed notes from industry professionals.