今天終於有空把demo放到了RunJS上面去。請使用google chrome觀看在線演示:
http://sandbox.runjs.cn/show/pekbd9zb
這個庫本來是我們開發的phonegap框架中的一部分,后來有人想單獨引用這個庫,因此今天我就把它從phonegap框架中提出來了,成為一個獨立的操作HTML5 SQLite的javascript庫。
英文文檔以及live demo的源代碼都放到了github上面:
https://github.com/leotsai/html5sqlite
這個庫使用起來非常簡單,跟entity framework非常類似,因為我們在一開始就是想完全模擬EF,用JS來實現EF的全套功能,這個目標現在已基本實現。比如以下這些EF很酷的功能我們都已經實現了:
1. Code First。用代碼來定義和生成數據庫;
2. Data Migration(數據遷移)。當數據庫表需要升級的時候,你只需提供相關的sql,升級將會在數據庫初始化的時候自動運行。
3. Repository(倉儲模式)。所謂倉儲模式,就是說任何對repository的增加/刪除/更新操作都只有在調用了DbContext.SaveChanges之后才會生效。所以,這個庫支持批量插入/刪除/更新數據庫。
4. 鏈式Linq查詢。如:db.users.where(...).where(...).orderBy(...).thenBy(...).toArray(callback).
5. 插入數據時,自動更新該條記錄的id,完全實現了EF的功能。
這里也有詳細的中文介紹(稍微有一點點不一樣):
http://www.cnblogs.com/leotsai/p/nova-phonegap-framework-chapter-4.html