今天终于有空把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