Free Salesforce Developers Tutorials >

Chapter 8 - Apex DML and Database Methods >

Database Class in APEX

Database Class in APEX

What You’ll Learn

S2 Labs

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, false);

Database Class Methods

1. Database.insert()


List < Account > accountsToInsert = new List < Account > ();
Account accountToUpdate;
for (Integer i = 0; i < 3; i++) {
    Account acc = new Account(Name = 'Simplilearn', BillingCity = 'New York');

2. Database.update()

Ex :

Account accountToUpdate = [SELECT BillingCity FROM Account WHERE Name = 'Simplilearn'
    LIMIT 1
accountToUpdate.BillingCity = 'San Francisco';
Account afterUpdate = [SELECT BillingCity FROM Account WHERE Id = : accountToUpdate.Id];
System.assertEquals(afterUpdate.BillingCity, 'San Francisco');

3. Database.upsert()


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');

4. Database.delete()


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 > ;
Database.merge(masterRecord, dupList);

Download Study Material

Get access to exclusive study material for Salesforce Certification and ace your exams!

Download Now

Our Salesforce Certification Courses

Hey there! Glad you made it through our Salesforce Developer Training for beginners . But wait! We've got some high-in-demand Salesforce courses for you to take your Salesforce skills to the next level, making you a desired professional in the Salesforce job market.

Post a Comment

Your email address will not be published. Required fields are marked *