Lovefield:基于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>
你也许感兴趣的:
- Rust 中的奇怪表达式
- 为什么 Rust 编译器这么慢?
- 微软发布用Rust编写的Linux版经典MS-DOS编辑器
- 使用 CSS 实现缩放动画:变换顺序很重要……有时
- Linux 管道的速度到底有多快?
- 每位开发者都应尝试 Vim
- HTML 规范变更:对属性中的 < 和 > 进行转义
- 如何修改Starlink Mini以在不使用内置WiFi路由器的情况下运行
- 在字符串中检测元音的最快方法
- Python 正在逐步移除 GIL,这对 Python 开发者意味着什么
你对本文的反应是: