Salesforce之DML操作

    在 Salesforce中,我們可以通過兩種方式執行所有數據庫修改功能:

            1. DML語句

            2.數據庫方法

下面我們就來說說,如何使用DML語句來完成數據的修改吧!

一 . DML語句

DML是爲了執行插入,更新,刪除,上升,恢復記錄,合併記錄或轉換引線操作而執行的動作。
DML是Apex中最重要的部分之一,因爲幾乎每個業務案例都涉及對數據庫的更改和修改

SOQL全稱爲Salesforce Object Query Language.通過SOQL語句可以操作sObject的增刪改查等操作。

例子 : 

下面還是以上面Student表進行舉例。

Student表的API Name 爲Student__c,所以在apex中,只要對Student__c對象進行相應的DML操作,即爲對Student數據表操作

注意 : apex代碼通過操作表以及列對應的API Name來對錶進行增刪改查操作處理. 

/*sObject有常用的兩種初始化方式,第一種爲常見的new
   第二種爲new時將參數作爲構造函數內容穿進去,多個參數使用','分隔   
*/
Student__c student1 = new Student(Name__c='student1');
Student__c student2 = new Student();
student2.Name__c = 'student2';
 
//增加一條學生記錄--> insert
insert student1;//SOQL 增加記錄的簡便寫法,同Database.insert(student1),詳見文檔
insert student2;
//修改一條學生記錄--> update
student1.Name__c = 'student update';
update student1;//SOQL修改記錄簡便寫法,同Database.update(student1)
 
/*增加或修改一條學生記錄 upsert
upsert原理:upsert通過是否存在此ID來判斷此條記錄是否存在,
1.如果不存在此ID則執行insert操作;
2.如果存在並且只存在一個ID,則執行update操作;
3.存在並且存在多個ID,則拋出DMLException
*/
//當上方執行insert語句時,Id便賦予student1,所以下方代碼執行update操作
student1.Name__c = 'student upsert';
upsert student1;//SOQL簡便寫法,同Database.upsert(student1);
 
//刪除一條學生記錄 delete
delete student2;//SOQL簡便寫法,同Database.delete(student2);
 
注意:進行DML 操作時有可能發生DMLException,所以在進行DML操作時最好進行try,catch處理。
eg:
try {
      insert student1;
} catch(DMLException e) {
      // TODO
} finally {
      // TODO
}

查詢語句返回List<sObject>數據,查詢語句也可以進行相應的複雜處理,例如進行where查詢,include,exclude,limit等等操作,此部分內容太多,此篇只講述最基本的查詢操作,以後篇會詳細探討SOQL語句細節以及多表關聯的查詢等操作。

where語句中經常伴隨着參數傳遞,比如查詢學生表中姓名爲zhangsan的個數等,如果採用拼串很容易造成錯誤,並且代碼不易閱讀。Apex提供了一種便捷的方式,使用 ':' 符號來聲明查詢語句中使用的變量,類似於Java中的PreparedStatement。

查詢有兩種方式,一種爲通過[select ...]方式來進行查詢,此種方式不利於SQL語句的拓展,故不推薦此種方式;

第二種方式爲通過構造查詢字符串,通過Database.query(queryString)方法來檢索數據,此種方式靈活性擴展性強,推薦此種方式。

另外注意的是:在Force.com平臺數據庫中,查詢不能使用'*'符號代表查詢全部字段,如果查詢全部字段需要全部列出來。

 

這些只是SOQL操作的一小部分,SOQL在開發中所佔比重很大,大家在開發中也會見到很多不一樣的,但是萬變不離其宗,希望小喵今天分享的知識可以起到拋磚引玉的作用.

今天的知識點,你Get到了嗎?

(^_^)~喵~!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章