electron配置sqlite问题

 我是使用的

npm create @quick-start/electron

创建的electron,版本是electron v31.2.0,nodejs版本20.15,在配置sqlite3报错

解决,使用

npm install electron-sqlite

命令安装

Electron-SQLite 是一个 Electron 应用中使用的 SQLite 数据库封装库。它允许你以简单的方式来操作 SQLite 数据库。

使用案例

const { app, BrowserWindow } = require('electron');
const sqlite3 = require('electron-sqlite').default;

// 指定数据库文件的路径
const dbPath = app.getPath('userData') + '/database.sqlite';

// 初始化数据库
const db = new sqlite3(dbPath);

// 使用数据库
app.whenReady().then(() => {
  // 创建表格
  db.run(`CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE
  )`);

  // 插入数据
  db.run(`INSERT INTO users (name, email) VALUES (?, ?)`, ['Alice', 'alice@example.com'], function (err) {
    if (err) {
      console.error('插入数据出错', err);
      return;
    }
    console.log('数据插入成功');
  });

  // 查询数据
  db.all('SELECT * FROM users', [], (err, rows) => {
    if (err) {
      console.error('查询数据出错', err);
      return;
    }
    console.log('查询到的用户:', rows);
  });

  // 关闭数据库连接
  db.close();
});

API 概览

Electron-SQLite 提供了 SQLite3 的所有功能,包括:

  • db.run(sql, params, callback): 执行 SQL 语句,params 是一个参数数组,callback 是执行完成后的回调函数。
  • db.get(sql, params, callback): 执行 SQL 查询并获取第一条结果,params 是一个参数数组,callback 返回查询结果。
  • db.all(sql, params, callback): 执行 SQL 查询并获取所有结果,params 是一个参数数组,callback 返回所有查询结果。
  • db.each(sql, params, callback): 逐行迭代查询结果。
  • db.serialize(fn): 序列化数据库操作,确保在下一个操作开始前当前操作已经完成。
  • db.run("BEGIN"): 开始一个事务。
  • db.run("COMMIT"): 提交一个事务。
  • db.run("ROLLBACK"): 回滚一个事务。

注意事项

  • 确保在 Electron 的 app.whenReady() 回调中初始化和使用数据库,以确保 Electron 环境已经准备好。
  • 使用参数化查询(如 db.run() 和 db.get() 中的 params 参数)可以防止 SQL 注入攻击。
  • 在执行数据库操作时,始终检查错误并妥善处理。
  • 在应用退出前,确保关闭数据库连接以释放资源。

Electron-SQLite 是一个简单易用的 SQLite 客户端,适合在 Electron 应用中进行轻量级的数据存储和管理。通过上述步骤,您可以快速集成并使用 Electron-SQLite。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值