在 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到了嗎?
(^_^)~喵~!!