第四章 Electron|Node 使用SQLite3数据库

news/2024/11/2 10:25:43/

一、SQLite是什么 👇 👇 👇

SQLite是一种嵌入式关系型数据库管理系统,是一个零配置、无服务器的、自给自足的、事务性的SQL数据库引擎。SQLite是一个轻量级的数据库,可以在各种操作系统上使用,并且支持SQL语言标准。

二、SQLite可以做什么 👇 👇 👇

SQLite可以用来存储和管理大量的数据,并且可以通过SQL语句来查询和操作这些数据。它可以用于移动应用程序、桌面应用程序、Web应用程序、嵌入式系统等等。

三、为什么使用它 👇 👇 👇

轻量级:SQLite非常小巧,不需要额外的服务器或运行时环境,只需一个库文件即可。

高性能:SQLite是非常快速的,因为它是一个本地库,可以直接读写磁盘文件。

可移植性:SQLite可以在多种操作系统上运行,包括Windows、Linux、macOS等等。

安全性:SQLite支持数据加密和用户身份验证等安全特性。

易于使用:SQLite的API简单易用,可以通过多种编程语言进行访问。

四、安装依赖 👇 👇 👇

安装依赖的话记得要把项目停掉

我当前的node版本号

yarn add sqlite3 --build-from-source# 如果执行上面的语句没有安装成功再执行下面的试试
# 如果都失败,多尝试几次就好yarn add sqlite3 --ignore-scripts

我安装的sqlite3版本

五、创建数据库👇 👇 👇

1、编写数据启动脚本👇 👇 👇

新建文件electron/db/database.ts,在electron下创建db文件夹,随后在其文件夹下创建database.ts。里面我通过开发环境来判断应该存放的位置。因为我们项目打包以后和开发的文件夹路径是不一样的。示例中数据库的名字叫Etc.End,以.db为后缀。名字根据自己的需求调整。

/*** @Description: 数据库连接* @Author: Etc.End* @CreationDate 2023-06-01 22:53:59*/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(), '/config/Etc.End.db');
if (NODE_ENV !== 'development') {DB_PATH = path.join(path.dirname(app.getPath('exe')), '/config/Etc.End.db');
}
/*** @Description: 连接数据库* @CreationDate 2023-05-10 13:48:41*/
function connectDatabase() {return new sqlite3.Database(DB_PATH, (err) => {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.close();
}exports.connectDatabase = connectDatabase;
exports.createDataTable = createDataTable;
exports.db = db;

2、启动脚本,创建数据库👇 👇 👇

接着在electron文件夹下的main.ts中调用createDataTable方法,编写完成以后启动程序。

启动以后控制台会输出👉👉👉-----------------sqlite3已经连接成功并且创建config文件夹以及Etc.End.db文件。

如上图一样执行成功以后我们可以通过navcat工具进行数据库的访问。

到这里我们的数据库以及表就已经创建完成了。

六、操作表👇 👇 👇

操作表的话就是拼接我们的sql,非常的简单。

const { db } = require('./database.ts')// 查询
function query() {return new Promise((resolve, reject) => {db.all('SELECT * FROM user', (err, rows) => {if (err) {reject(err);} else {resolve(rows);}});});
}// 新增
function add(data) {return new Promise((resolve, reject) => {db.run(`INSERT INTO user(name, email, phone) VALUES('${data.name}', '${data.email}', '${data.phone}')`,function (err) {if (err) {reject(err);} else {resolve(this.lastID);}});});
}

我是Etc.End。如果文章对你有所帮助,能否帮我点个免费的赞和收藏😍。

 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇


http://www.ppmy.cn/news/221916.html

相关文章

11 Redis大厂真实需求落地案例实战

案例实战:微信抢红包 需求分析 各种节假日,发红包抢红包,不说了,100%高并发业务要求,不能用mysql来做一个总的大红包,会有可能拆分成多个小红包,总金额 分金额1分金额2分金额3…分金额N每个人…

PubChem介绍及API及PubChempy

PubChem 【官网 https://pubchem.ncbi.nlm.nih.gov/】 简介 PubChem is the world’s largest collection of freely accessible chemical information. Search chemicals by name, molecular formula, structure, and other identifiers. Find chemical and physical proper…

汽车SOA模型解读

SOA定义 SOA 全称 Service-Oriented Architecture,即“服务导向式架构”。它可以定义为: 一种软件的设计方法一个组件模型一种应用程序架构一种设计思想方法论 总之它并不是某一种具体的技术实现。 SOA 架构采用广泛可接受的标准,把业务功…

HBase:(三)HBase API

HBase:(一)安装部署_只爱大锅饭的博客-CSDN博客hbase部署安装https://blog.csdn.net/qq_35370485/article/details/130988364?spm1001.2014.3001.5501 1.创建maven项目 2.添加依赖 <dependency><groupId>org.apache.hbase</groupId><artifactId>hba…

【C++】一文带你吃透C++继承

&#x1f34e; 博客主页&#xff1a;&#x1f319;披星戴月的贾维斯 &#x1f34e; 欢迎关注&#xff1a;&#x1f44d;点赞&#x1f343;收藏&#x1f525;留言 &#x1f347;系列专栏&#xff1a;&#x1f319; C/C专栏 &#x1f319;那些看似波澜不惊的日复一日&#xff0c;…

【数据结构】虽然很难很抽象,但是你还是得努力弄懂的数据结构——链表,基本上你每一段代码都可能会用到

链表解决了顺序表插入或删除元素麻烦的问题&#xff0c;链表的存储结构是用一组任意的存储单元来存放线性表的数据元素&#xff0c;这组存储单元可以是连续的&#xff0c;也可以是不连续的。 对每个数据元素ai&#xff0c;除了存储其本身的信息之外&#xff0c;还需存储一个指…

设置和使用 Studio3 Wireless 头戴式耳机

https://www.beatsbydre.com/cn/support/how-to/set-up-and-use-studio3-wireless

win10前置耳机插孔没声音_win10头戴式耳机麦克风没声音怎么办

一切正常 权限是开的 给家里亲戚乱调之后 没声音了 能听音乐 但是说话别人听不见