Utvikling av Electron-skrivebordsapper · leksjon

Innebygde databaser med SQLite

Lagre strukturerte data som kan spørres mot, i Electron-appen din ved hjelp av en innebygd SQLite-database – et steg videre fra nøkkel-verdi-lagring og råfiler.

Leksjon 3 av 313 trinn

Innebygde databaser med SQLite er en gratis leksjon i Utvikling av Electron-skrivebordsapper på CoddyKit. Dette er leksjon 3 av 3. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Utvikling av Electron-skrivebordsapper, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Utvikling av Electron-skrivebordsapper inneholder totalt 3 leksjoner.

Når filer ikke er nok

Nøkkel-verdi-lagring og flate filer fungerer for små datamengder. For relasjonelle data som kan spørres, er en innebygd database som SQLite det riktige verktøyet.

Hvorfor SQLite for skrivebordsapper

SQLite er serverløs og lagrer alt i én enkelt fil. Den følger med i appen, så brukeren trenger ikke å installere noe.

Velge en driver

Populære Node-drivere omfatter better-sqlite3 (synkron og rask) og sqlite3 (asynkron). Kjør databasekoden i hovedprosessen.

const Database = require('better-sqlite3');
const db = new Database('app.db');

Opprette en tabell

Definer databasemodellen én gang med CREATE TABLE IF NOT EXISTS, slik at det er trygt å kjøre den ved hver oppstart.

db.exec('CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)');

Sette inn rader

Bruk forberedte uttrykk med plassholdere for å sette inn data på en trygg måte.

const insert = db.prepare('INSERT INTO notes (body) VALUES (?)');
insert.run('Buy groceries');

Spørre etter data

Les rader tilbake med all() for mange rader eller get() for én rad.

function buildQuery(table) {
  return 'SELECT * FROM ' + table;
}
console.log(buildQuery('notes'));

Bruke parametere overalt

Sett aldri brukerinput direkte sammen med SQL. Plassholdere forhindrer SQL-injeksjon og feil ved anførselstegn.

function isSafe(query) {
  return query.includes('?');
}
console.log(isSafe('SELECT * FROM notes WHERE id = ?'));

Eksponere data for renderer-prosessen

Renderer-prosessen skal aldri kontakte databasen direkte. Eksponer spørringsfunksjoner gjennom en preload-bro via IPC.

ipcMain.handle('notes:list', () => {
  return db.prepare('SELECT * FROM notes').all();
});

Migreringer

Når databasemodellen utvikler seg, kan du spore en user_version og bruke migreringer trinnvis ved oppstart.

Hvor filen skal lagres

Plasser databasen i brukerdata-mappen via app.getPath('userData'), slik at den overlever oppdateringer og kan skrives til.

const path = require('path');
function dbPath(userData) {
  return path.join(userData, 'app.db');
}
console.log(dbPath('/home/user/.config/myapp'));

Transaksjoner for sikkerhet

Pakk flere skriveoperasjoner inn i en transaksjon, slik at de enten lykkes alle sammen eller rulles tilbake alle sammen. Da forblir dataene konsistente.

Kjapp sjekk

Test kunnskapene dine om SQLite.

Oppsummering

Du har lært å legge til strukturert, varig lagring med SQLite: velge en driver, opprette tabeller, bruke forberedte uttrykk, eksponere data via IPC, lagre filen i userData og bruke transaksjoner og migreringer.

Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
47

Ofte stilte spørsmål

Er leksjonen «Innebygde databaser med SQLite» gratis?

Ja – hele teksten i «Innebygde databaser med SQLite» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Utvikling av Electron-skrivebordsapper-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Utvikling av Electron-skrivebordsapper inneholder totalt 3 leksjoner.

Hva lærer jeg i «Innebygde databaser med SQLite»?

Lagre strukturerte data som kan spørres mot, i Electron-appen din ved hjelp av en innebygd SQLite-database – et steg videre fra nøkkel-verdi-lagring og råfiler. Du øver på Utvikling av Electron-skrivebordsapper med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Utvikling av Electron-skrivebordsapper?

Ingen tidligere erfaring er nødvendig. Utvikling av Electron-skrivebordsapper på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 3.

Hvor lang tid tar leksjonen «Innebygde databaser med SQLite»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Utvikling av Electron-skrivebordsapper-leksjonen?

Ja. Alle Utvikling av Electron-skrivebordsapper-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Lokal lagring og IndexedDB
  2. Tilgang til filsystemet
  3. Innebygde databaser med SQLite
← Tilbake til Utvikling av Electron-skrivebordsapper