Lovefield:基于IndexedDB的跨浏览器、SQL风格的关系型查询引擎

安装前提条件

你需要安装下面的程序来完成下面的步骤里的任务。

PythonJava

为了能顺利的完成Lovefield的安装和使用,你的开发环境里需要有Python 和 Java,并设置相应的PATH。

node.js

除了使用nodejs.org上的installer外,你还可以使用nvm来安装node.js。

你还需要安装几个模块,我们强烈推荐使用npm来完成这个任务。下面是需要的模块:

  1. glob
  2. js-yaml
  3. nopt

闭包编译器和库

我们需要使用最新版的闭包编译器。不要担心,你的代码并不依赖这些版本和库,我们只用它来生成相应的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个步骤:

  1. 定义schema
  2. 为你的代码生成绑定的JavaScript
  3. 在你的代码来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>
加载余下内容▼

相关文章:

;