[心得] SQLite 的開發簡化
最近因專案需要,必須要對Adobe AIR提供的SQLite功能做了解。
但在實做中,覺得AIR提供的SQLite雖然好,但是作業流程很繁雜,
所以我將各種作業包裝成一個類別擋,
並將資料庫操作抽象出來,使得各項與資料庫的操作都不再需要(幾乎)SQL了。
例如:
var conditions:Array = new Array();
conditions[SQLiteDBManager.SELECT_COND_AND] = {
"name":{"=" : "\"test\""},
"priority":{"<=" : 50}
};
conditions[SQLiteDBManager.SELECT_COND_OR] = {
"created":{"<" : "2010/05/30"},
"id":{">=" : 1}
};
var columns:Array = ["priority", "name"];
var additionalSQL:String = " ORDER BY priority DESC";//optional
var limitConditions:Array = new Array();
limitConditions[SQLiteDBManager.SELECT_LIMIT_FROM] = 0;
limitConditions[SQLiteDBManager.SELECT_LIMIT_TO] = 10;
dbManager.retriveRecords("test_table", conditions, columns,
limitConditions, additionalSQL,
TestTable,//result class, optional
[onSelectResultCallback]);
便會產生如下的SQL:
SELECT priority,name FROM test_table WHERE ( name="test" AND priority<=50 )
AND ( id>=1 OR created<2010/05/30 )
ORDER BY priority DESC LIMIT 0,10;
同時執行這句SQL,並且在結果回傳時呼叫預先定義好的callbacks。
更多的資料我都與原碼包裝在一起了:
http://sourceforge.net/projects/adoebairsqlited/
希望這會對SQLite的開發者有幫助。
P.S. 網路上有很多提供類似功能的Framework,我製作這個類別的原因在於將SQL從
我的專案裡移除,以減少程式碼維護時的麻煩與紊亂,同時所有的資料庫操作都可以呼叫
一系列預先定義好的callback,對我自己而言,開發方便許多了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.111.2.213