当前位置:网站首页>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

Insérer la description de l'image ici

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);
        });
    })
}

Insérer la description de l'image ici

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

Insérer la description de l'image ici

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

Insérer la description de l'image ici


É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.db La 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 .

原网站

版权声明
本文为[Aircity Aircraft]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/173/202206221102267135.html