前言
SQLite是一种嵌入式关系型数据库管理系统,是一个零配置、无服务器的、自给自足的、事务性的SQL数据库引擎。SQLite是一个轻量级的数据库,可以在各种操作系统上使用,并且支持SQL语言标准。
SQLite可以用来存储和管理大量的数据,并且可以通过SQL语句来查询和操作这些数据。它可以用于移动应用程序、桌面应用程序、Web应用程序、嵌入式系统等等。
1.安装sqlite3
npm install sqlite3 --save
可视化工具可自行下载 SQLiteStudio
2.连接数据库
const sqlite3 = require('sqlite3').verbose(); const path = require('path'); let dbPath = path.resolve(process.env.VUE_APP_DB_URL); let db = new sqlite3.Database(dbPath);
复制
3.编写增删改查功能
import { ipcMain} from 'electron'; export function handleDatabaseApi() { ipcMain.handle('getUserInfo', (event, params) => {\ return new Promise((resolve, reject) => { db.all('SELECT * from user_info', (err, rows) => { if (err) { reject(err); } else { resolve(rows); } }) }); }); ipcMain.handle('updateUserInfo', (event, params) => { return new Promise((resolve, reject) => { db.run('UPDATE user_info SET role = ? WHERE ID = ?;', [params.role,params.id], (err, rows) => { if (err) { reject(err); } else { resolve(rows); } }) }); }); ipcMain.handle('createUserInfo', (event, params) => { return new Promise((resolve, reject) => { db.run('INSERT INTO user_info (userName,role) VALUES (?,?);', [params.userName,params.role], (err, rows) => { if (err) { reject(err); } else { resolve(rows); } }) }); }); ipcMain.handle('delUserInfo', (event, params) => { return new Promise((resolve, reject) => { db.run('DELETE FROM user_info WHERE id=?;', [params.id], (err, rows) => { if (err) { reject(err); } else { resolve(rows); } }) }); }); }
复制
4.主线程background.js中引入
5.渲染线程调用方法(即Vue组件)
以上是electron + vue + sqlite3 完成数据库增删改查的方法