我有一个使用WebSQL的应用程序。我也想支持IndexedDB(对于没有WebSql支持的浏览器)。是否有任何使用sql语法但在后台使用indexedDB / LocalStorage的库?
我不想改变我的所有查询和功能。
我找到的所有库都使用IndexedDb语法并支持WebSql。 (不是我需要的)。
谢谢:)
答案 0 :(得分:4)
您可以尝试Alasql JavaScript SQL数据库库。它支持所有重要的SQL 语句也可以使用SQL语法与IndexedDB一起使用。
以下是一个例子:
<script src='alasql.min.js'></script>
<script>
var cityData = [{city:"Redmond", population:57530},
{city:"Atlanta",population:447841},
{city:"San Francisco", population:837442}];
// Create IndexdDB database and fill it with data from array
alasql('CREATE INDEXEDDB DATABASE IF NOT EXISTS geo;\
ATTACH INDEXEDDB DATABASE geo; \
USE geo; \
DROP TABLE IF EXISTS cities; \
CREATE TABLE cities; \
SELECT * INTO cities FROM ?', [cityData], function(){
// Select data from IndexedDB
alasql('SELECT COLUMN * FROM cities WHERE population > 100000 ORDER BY city DESC',
[],function(res){
document.write('Big cities: ', res.join(','));
});
});
</script>
您可以在jsFiddle
中使用此示例答案 1 :(得分:2)
您可以使用我的库ydn-db进行非常简单的SQL查询,该查询适用于任何Web数据库。
对于几乎完全支持SQL,请查看商业SequelSphere js库http://www.sequelsphere.com/docs/latest/doc/Supported%20SQL.html。不幸的是,查询执行目前在内存中。定价非常贪婪。