☰
【Electron 3】electron将数据写入本地数据库
2026/10/11 4:20:23 网站建设 项目流程

安装

yarn add sqlite3 --save

连接并调用数据库,创建表

createDB.ts文件内容

const sqlite3 = require('sqlite3') const NODE_ENV = process.env.NODE_ENV const path = require('path') const { app } = require('electron') let DB_PATH = path.join(app.getAppPath(), '/electron/sql/数据库名.db'); console.log(DB_PATH, app.getAppPath(), 'DB_PATH') if (NODE_ENV !== 'development') { // exe window DB_PATH = path.join(path.dirname(app.getPath('exe')), '/electron/sql/数据库名.db'); } /** * @Description: 连接数据库 * @CreationDate 2023-05-10 13:48:41 */ function connectDatabase() { return new sqlite3.Database(DB_PATH, (err: any) => { if (err) { console.error('--------------------connectDatabaseErr' + err.message); } console.log('👉👉👉-----------------sqlite3已经连接成功') }); } // 调用连接数据库 const db = connectDatabase(); /** * @Description: 创建数据库,如果用户本地没有数据库的话就创建否则跳过 * @CreationDate 2023-05-10 13:44:48 */ function createDataTable() { /** * @Description: 创建用户表 * @CreationDate 2023-06-01 22:53:23 */ db.serialize(function() { // db.run('create table if not exists user (id INTEGER PRIMARY KEY AUTOINCREMENT, name text, email text, phone text);'); db.run("create table if not exists test(name varchar(20))", () => { db.run("insert into test values('nihao')", () => { db.all("select * from test", (err: any, res: any) => { if (err) throw err console.log(JSON.stringify(res)) }) }) }) }); // db.close(); } exports.connectDatabase = connectDatabase; exports.createDataTable = createDataTable; exports.db = db;

在electron main.ts(主进程的主窗口文件)中的调用:

// 引入 const { createDataTable } = require('./db/createDB'); createTray(mainWindow)

目前使用的db属性有

基于我个人使用的理解,如有问题请指出

serialize 持续要运行的内部命令 run 运行某条数据 all 获取查找到的所有数据,返回[] get 获取某条符合条件的数据,返回{}

操作数据库表命令

创建表 create table if not exists 表名(字段名,字段名,...) 说明: if not exists : 如何没有这个表就会进行创建 查询某张表是否存在 SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = '表名' 增加一条数据 insert into 表名 values('字段1','字段2',...) 修改某条数据的字段 update 表名 set 字段名='字段' where 字段名1='字段' 说明: set 设置要更新的数据 where 符合条件的字段 查某条数据 select * from 表名 where 字段名='字段' where 为条件

持续更新中。。。。
注:我后来发现一个更好用的better-sqlite3这个插件,github上介绍的很详细,比用sqlite3要查资料省不少时间

学习资料:

csdn
书:《SQLite权威指南》
菜鸟教程

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询