当前位置:网站首页>Electron ajoute une base de données SQLite
Electron ajoute une base de données SQLite
2022-06-22 11:16:00 【Aircity Aircraft】
Préface
Avant,J'ai utiliséelectronA développé une application d'horloge à tomates,Mais le stockage des données d'application à l'époque étaitJSONDans le dossier,AdoptionnodeDefsSystème de fichiers pour la lecture et l'écriture,Mais j'ai l'impression que ce n'est pas professionnel de ne pas utiliser la base de données.
Donc, nous avons toujours l'intention d'utiliser la base de données comme lieu de stockage,Mais il y a plus de choix pour les bases de données,Mais j'ai fait un tour et j'ai trouvé queelectronLa base de données emballée peut encore êtreSQLiteC'est parti..
J'avais l'intention d'utilisermongodb,Mais il faut bien télécharger,Donc directementpass.Et parce queSQLiteIl n'est pas nécessaire de déployer un serveur,DirectnodePeut être créé et exploité,Alors allez - y directement

Articles précédents:
Développement
Parce que le projet d'horloge à tomates a déjà été écrit , Et la lecture et l'écriture des données sont séparées , Alors maintenant, créez un nouveau sqliteDB.js Comme fichier de méthode pour manipuler la base de données .
En fait, l'opération ici se réfère essentiellement à 《node の SQLite》C'est tout..Adoptionsqlite L'instruction pour créer une table de base de données commence par la base de données tomato.dbCréer,Puis créer une tabletomatoTable.
Créer un tableau:(sqliteMoyenneBoolean Les propriétés seront stockées sous 0/1)
runSQL(` create table tomatoTable ( name text not null, creatTime text not null, duringTime int not null, startFlag boolean not null, bgSrc text not null, taskEndCount int not null, taskId text not null ); `)
Puis il passe entre le processus principal et le processus de rendu ipcMainEtipcRendererPour obtenir des données, Cela ne change pas non plus , Mais prenez les données de JSON Obtenir à partir du fichier est devenu sqliteObtenir dans la base de données.
Quant à la méthode d'accès à la base de données , Parce que mon accès initial aux données n'a besoin que d'un seul accès complet ,Peut être utilisédb.all, De cette façon, les données sont affichées dans la méthode de rappel ,Peut passerpromisePour retourner les données, Passe par là. await En attente de réception .
// Demander les données de l'horloge tomate
function getTomatoData() {
db = new sqlite3.Database(rootPath);
return new Promise((reslove)=>{
db.all('select * from tomatoTable', (err, data)=>{
reslove(data);
});
})
}

Vous pouvez ensuite recevoir l'objet directement lorsqu'il est reçu dans le processus de rendu ,Pas besoin de passer.JSON.parse Convertir une chaîne en objet

Parce que l'application Tomato Clock n'a pas besoin d'ajouter ou de supprimer plusieurs données en même temps , Par conséquent, les opérations d'ajout, de suppression et de modification sont relativement simples :
// Insérer de nouvelles données dans l'horloge à tomates
function insertNewInfo(d) {
let insertInfo = db.prepare('insert into tomatoTable (name, creatTime, duringTime, startFlag, bgSrc, taskEndCount, taskId) values (?, ?, ?, ?, ?, ?, ?)')
insertInfo.run(d.name, d.creatTime, d.duringTime, d.startFlag, d.bgSrc, d.taskEndCount, d.taskId );
insertInfo.finalize();
}
// Supprimer les données de l'horloge tomate
function deleteNewInfo(taskId) {
let del = db.prepare("delete from tomatoTable where taskId = ? ");
del.run(taskId);
del.finalize();
}
// Modifier le nombre de tâches d'horloge de tomate terminées
function updateTaskEndCount(arg) {
let update = db.prepare('update tomatoTable set taskEndCount = ? where taskId = ?');
update.run(arg.taskEndCount, arg.taskId);
update.finalize();
}
Ajouter une nouvelle donnée à l'interface de l'horloge tomate ,Et vous pouvez passervscodeDesqlite Le plug - in vérifie d'abord s'il existe :
-- SQLite
select * from tomatoTable

Écris que c'est presque fini , Ensuite, on remballe les horloges à tomates ,Modalités et《vueHorloge à tomates&electron Emballez》 C'est pareil.
On pensait qu'il y en avait un de plus
tomato.dbLa base de données aura un impact sur l'emballage , Ce qui mène à une fausse déclaration ou quelque chose , Il n'y a eu aucun problème .
边栏推荐
- Investment transaction management
- MySQL使用SQL语句修改字段长度、字段名称
- Save: software analysis, verification and test platform
- Solve the problem that the chrome icon of Google browser in win7 taskbar is missing and abnormally blank
- In depth analysis of business model of blind box software development in 2022
- The father of the college entrance examination student told himself at night that what he cared about most was not the child's performance, and the turning point was not false at all
- Free and easy to use, Tencent arm cloud instance evaluation - AI reasoning acceleration
- Redis 切片集群的数据倾斜分析
- MySQL uses SQL statements to add and delete fields
- Introduction and configuration method of wireless 802.1x authentication
猜你喜欢

Foreign trade topic: foreign trade e-mail marketing template

Today, how does sysak implement business jitter monitoring and diagnosis Take you through Anolis OS 25-26

In 2022, IPv6 deployment and application will be further promoted. How can we comprehensively realize security upgrading and transformation?

【直播回顾】战码先锋第六期:共建测试子系统,赋能开发者提高代码质量

HMS core news industry solution: let technology add humanistic temperature

Go微服务(一)——RPC入门

Heidisql inserts records. There are always errors. How do you change them?

今天,SysAK 是如何实现业务抖动监控及诊断?&手把手带你体验Anolis OS|第25-26期

在 Laravel 中使用计算列

Pule frog 5D flying cinema 5D dynamic cinema experience hall equipment 7d multi person interactive cinema
随机推荐
Spark streamlined interview
7-1 framework Publishing - publishing framework through NPM
R语言基于with函数对指定的协变量执行双样本t检验、t.test函数对不同分组对应的协变量的均值进行Welch双样本t检验分析、双独立样本t检验
2022年度敏捷教练行业现状报告(2022 State of Agile Coaching Report)
Introduction and configuration method of wireless 802.1x authentication
Daily question 5-1636 Sort arrays in ascending order by frequency
MySQL uses SQL statements to modify field length and field name
本周四晚19:00战码先锋第7期直播丨三方应用开发者如何为开源做贡献
[JMeter] shell script automatically executes JMeter
Redis常用命令
GEE——Global Flood Database v1 (2000-2018)
一次特殊的文件上传
ONES 出席首届「精益软件工程大会」,分享效能改进实践
Using computed columns in laravel
When the system is reconstructed, I will leave!
Free and easy to use, Tencent arm cloud instance evaluation - AI reasoning acceleration
Interpretation of MAML (model agnostic meta learning)
今天,SysAK 是如何实现业务抖动监控及诊断?&手把手带你体验Anolis OS|第25-26期
nvm use之后重新打开终端还是显示修改之前的版本
云端极简部署Svelte3聊天室