Lovefield:基于IndexedDB的跨浏览器、SQL风格的关系型查询引擎
基于IndexedDB的跨浏览器、SQL风格的关系型查询引擎
安装前提条件
你需要安装下面的程序来完成下面的步骤里的任务。
Python 和 Java
为了能顺利的完成Lovefield的安装和使用,你的开发环境里需要有Python 和 Java,并设置相应的PATH。
node.js
除了使用nodejs.org上的installer外,你还可以使用nvm来安装node.js。
你还需要安装几个模块,我们强烈推荐使用npm来完成这个任务。下面是需要的模块:
闭包编译器和库
我们需要使用最新版的闭包编译器。不要担心,你的代码并不依赖这些版本和库,我们只用它来生成相应的JS绑定代码。
为了获得最新的编译器和程序库,你需要安装git,并执行下面的命令:
cd closure git clone https://github.com/google/closure-library.git git clone https://github.com/google/closure-compiler.git cd closure-compiler ant jar
我们并没有下载最新的JAR,我们需要参考repo里的外围文件。
如何使用Lovefield
使用Lovefield需要3个步骤:
- 定义schema
- 为你的代码生成绑定的JavaScript
- 在你的代码来include绑定的js
定义schema
编写YAML文件定义你的数据库schema:
%YAML 1.2
---
name: mydb
version: 1
table:
Card:
column:
id: string
name: string
编译
使用nodejs执行tools/bundle.js创建编译绑定文件。它们会自动的添加到你的代码库里。
node tools/bundle.js \ --schema my_schema.yaml \ --namespace my.namespace \ --outputdir ~/mypath \ --compiler ~/src/closure-compiler/build/compiler.jar \ --library ~/src/closure-library
输入node tools/bundle.js命令,会出现用法说明。你需要指定闭包编译器和程序库的地址,你还可以自定义输出地址。
如何在代码中使用Lovefield
<script src="mysrc/mydb_bundle.js"></script>
<script>
mydb.getInstance().then(
function(db) {
var card =
db.getSchema().getCard();
var query = db.select().
from(card).
where(
card.id.eq('12345'));
return query.exec();
}).then(function(results) {
});
</script>
你也许感兴趣的:
- 街头霸王 II 开发探秘:纸上追踪
- 每位程序员都应了解的 Python 数字
- 你可以自定义HTML标签
- Python 3.15 的 Windows x86-64 解释器有望提升 15% 运行速度
- C++性能提示
- SQLite是如何做测试的
- 关于首字符下划线及C/C++语言保留的名称
- 将电子墨水平板用作Linux显示器
- D-Bus 是 Linux 桌面的耻辱
- 避免使用 UUID 第 4 版主键(适用于 Postgres)

你对本文的反应是: