资讯详情

资讯详情

【Electron 3】electron将数据写入本地数据库

安装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权威指南》菜鸟教程
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →