localStorage是否有一个Javascript库来模拟SQLite ?

Is there a Javascript library for localStorage to emulate SQLite

本文关键字:模拟 SQLite 是否 有一个 Javascript localStorage      更新时间:2023-09-26

我有一个使用SQLite进行存储的应用程序。我们需要修改它,使它能够与Firefox和其他浏览器一起工作。

LocalStorage似乎是一个选择。但是,localStorage不提供更复杂的sql功能(例如OrderBy、GroupBy、表连接等)。

有没有人知道一个Javascript现有的库,将与localStorage工作,使其行为更像SQL?-谢谢

您可以使用javascript linq实现之一。它们从纯javascript对象/数组中获取数据,因此,与localstorage的接口应该非常简单。

http://jslinq.codeplex.com/
http://linqjs.codeplex.com/
甚至http://www.thomasfrank.se/sqlike.html

他们的在线演示:http://secretgeek.net/JsLinq/(注意左上角的选项)

我不太确定插入/更新方面,但你肯定可以用它们做一些很好的数据查询。

试试sql.js。

试试alasql.js。这是一个用纯JavaScript编写的SQL数据库。即使它不具有与locasStorage一起工作的功能,但您可以轻松地保存和恢复会话或更改前后所需的所有数据。

下面是一个如何使用localStorage的Alasql的例子:

// Create database and table structure
var db = new alasql.Database();
db.exec('CREATE TABLE students (studentid INT, school STRING)');
// Load table data from localStorage if it exists or create new table
if(localStorage['students']) {
    db.tables.students.data = JSON.parse(localStorage['students']);
} else {
    db.tables.students.data = [
       {studentid: 55, school: 'abc'},
       {studentid: 56, school: 'klm'},
       {studentid: 57, school: 'nyz'}
    ];
    localStorage['students'] = JSON.stringify(db.tables.students.data);
};
// Add new student and save database
db.tables.students.data.push({student: 100, school:'qwe'}); 
localStorage['students'] = JSON.stringify(db.tables.students.data);
// SQL-query
console.log(db.exec("SELECT * FROM students WHERE school > 'ght'"));

如果你正在寻找一个HTML5/JavaScript关系数据库替代SQLLite: SequelSphere

SequelSphere是一个Javascript库,可以在所有现代浏览器和平台上工作,并将其数据存储在IndexedDB和LocalStorage中(取决于浏览器支持什么)。它很容易与任何第三方RIA框架集成,并提供"更改跟踪器"来帮助数据同步。

既然你问了复杂的SELECT功能,以下是在SequelSphere的网站下找到的:

SequelSphere最令人印象深刻的功能是它的革命性的SQL解析和执行引擎。一切正常SELECT特征和表达式,然后超越处理LEFT,RIGHT和FULL外连接。它不仅吹嘘处理无限量子查询的嵌套,它在每个主子句(SELECT,从,哪里,加入,上,有,甚至组由!)。说到分组,它还处理分组集、卷取、多维数据集和总体分组功能。它甚至优雅地处理复杂的条件表达式如:

(a, b)不是((1、2),(3、4),(选项卡)选择c, d)

在RUNTIME中加入自定义、用户定义的混合能力函数和第三方表(两个很酷的特性)右),SQL引擎确实是非凡的。没有其他SQL引擎能做到这些,更不用说100%用JavaScript实现了主要浏览器和平台。而且,我们不要忘记它能做所有的事情这具有极快的速度:解析、规划和优化毫秒级的发生。

全面披露:我是SequelSphere的一员,产品非常棒。

试试我的开源库https://bitbucket.org/ytkyaw/ydn-db/wiki/Home它有IndexedDB, WebSQL和web存储。提供了丰富的查询选项。出奇的容易使用。