作者aitch (Aitch)
看板Flash
标题[心得] SQLite 的开发简化
时间Mon Aug 9 17:40:44 2010
最近因专案需要,必须要对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