[心得] SQLite 的開發簡化

看板Flash作者 (Aitch)時間15年前 (2010/08/09 17:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
最近因專案需要,必須要對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
文章代碼(AID): #1CNyqYrq (Flash)