electronjs MySQL_Electron中使用sql.js操作SQLite数据库

一、关于sql.js

sql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite C代码,将SQLite移植到Webassembly。 它使用存储在内存中的虚拟数据库文件,因此不会保留对数据库所做的更改。 但是,它允许您导入任何现有的sqlite文件,并将创建的数据库导出为JavaScript类型的数组。

这里没有C绑定或node-gyp编译,sql.js是一个简单的JavaScript文件,可以像任何传统的JavaScript库一样使用。 如果您正在JavaScript中构建本机应用程序(例如,使用

SQLite是公共领域,sql.js是MIT许可的。

Sql.js早于WebAssembly,因此从asm.js项目开始。 它仍然支持asm.js以实现向后兼容。

二、为什么要用sql.js

在开发electron应用的时候如果想要使用sqlite3,步骤上除了npm安装以外还要rebuild,比较麻烦,参见electron官方文档之使用 Node 原生模块(https://electronjs.org/docs/tutorial/using-native-node-modules)。

如果你想找一个开箱即用的sql库,那么sql.js将是个不错的选择。sql.js是sqlite的Webassembly版,使用上和sqlite基本没有区别。sql.js支持浏览器端直接引入cdn,或者下载sql-wasm.js和sql-wasm.wasm到本地后引入,也支持npm导入。

三、在Electron项目中安装sql.js

2、安装sql.js

cnpm install sql.js --save

安装完后,查看目录结构:

tree node_modules/sql.js -L 2

node_modules/sql.js

├── AUTHORS

├── GUI

│   └── index.html

├── LICENSE

├── Makefile

├── README.md

├── cache

│   ├── check.txt

│   ├── extension-functions.c

│   └── sqlite-amalgamation-3280000.zip

├── dist

│   ├── sql-asm-debug.js

│   ├── sql-asm-memory-growth.js

│   ├── sql-asm.js

│   ├── sql-wasm-debug.js

│   ├── sql-wasm-debug.wasm

│   ├── sql-wasm.js

│   ├── sql-wasm.wasm

│   ├── worker.sql-asm-debug.js

│   ├── worker.sql-asm.js

│   ├── worker.sql-wasm-debug.js

│   └── worker.sql-wasm.js

├── examples

│   ├── GUI

│   ├── README.md

│   ├── persistent.html

│   ├── repl.html

│   ├── requireJS.html

│   ├── simple.html

│   └── start_local_server.py

├── index.html

├── out

│   ├── api.js

│   ├── extension-functions.bc

│   ├── sqlite3.bc

│   └── worker.js

├── package.json

├── sqlite-src

│   └── sqlite-amalgamation-3280000

└── src

├── api-data.coffee

├── api.coffee

├── exported_functions.json

├── exported_runtime_methods.json

├── exports.coffee

├── output-post.js

├── output-pre.js

├── shell-post.js

├── shell-pre.js

└── worker.coffee

9 directories, 41 files

dist目录文件说明详见 https://github.com/kripken/sql.js#versions-of-sqljs-included-in-the-distributed-artifacts

四、在Electron项目中,如何使用sql.js操作SQLite数据库

1、创建一个SQLite数据库

我们可以在命令行中创建,也可以通过在线SQL解释器(http://kripken.github.io/sql.js/examples/GUI/)创建并下载一个。

写代码时,大家可以参考由源代码中的注释生成的完整文档——http://kripken.github.io/sql.js/documentation/#http://kripken.github.io/sql.js/documentation/class/Database.html

我们使用后者下载一个数据库 sql.db 放到项目根目录。再看一下我们当前的项目文件结构:

d tree -L 1

.

├── index.html

├── main.js

├── node_modules

├── package.json

└── sql.db

1 directory, 4 files

当然,我们也可以在项目运行时,动态创建一个,不过先创建静态文件目录,拷贝相关文件到静态文件目录。

→ mkdir -p static/js

→ cp node_modules/sql.js/dist/sql-wasm.* static/js/

→ ls static/js/

sql-wasm.js sql-wasm.wasm

再改动 index.html 文件内容:

create the database
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值