绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
electronjs MySQL_Electron中使用sql.js操作SQLite数据库
2022-04-11 10:37:18

一、关于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
————————————————

原文链接:https://blog.csdn.net/weixin_39769740/article/details/113895227

分享好友

分享这个小栈给你的朋友们,一起进步吧。

SQL.JS
创建时间:2022-04-11 10:32:29
SQL.JS
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • itt0918
    专家
戳我,来吐槽~