Electron-työpöytäsovellusten kehitys · Oppitunti

Upotetut tietokannat SQLitella

Tallenna rakenteista ja kyseltävää dataa Electron-sovellukseesi upotetun SQLite-tietokannan avulla ja siirry avain–arvo-tallennusta sekä raakadataa pidemmälle.

Oppitunti 3/313 vaihetta

Upotetut tietokannat SQLitella on ilmainen Electron-työpöytäsovellusten kehitys-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Electron-työpöytäsovellusten kehitys-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Electron-työpöytäsovellusten kehitys-kurssilla on yhteensä 3 oppituntia.

Kun tiedostot eivät riitä

Avain-arvo-tallennus ja litteät tiedostot sopivat pienille tietomäärille. Relaatiomuotoisille, kyseltäville tiedoille upotettu tietokanta, kuten SQLite, on oikea työkalu.

Miksi SQLite sopii työpöydälle

SQLite on palvelimeton ja tallentaa kaiken yhteen tiedostoon. Se toimitetaan sovelluksesi mukana, eikä käyttäjän tarvitse asentaa mitään.

Ajurin valitseminen

Suosittuja Node-ajureita ovat esimerkiksi better-sqlite3 (synkroninen ja nopea) sekä sqlite3 (asynkroninen). Suorita tietokantakoodi pääprosessissa.

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

Taulukon luominen

Määritä skeemasi kerran komennolla CREATE TABLE IF NOT EXISTS, jotta sen suorittaminen jokaisella käynnistyskerralla on turvallista.

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

Rivien lisääminen

Käytä valmisteltuja lauseita paikanhaltijoineen tietojen turvalliseen lisäämiseen.

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

Tietojen kysely

Lue rivit takaisin käyttämällä all()-metodia useille riveille tai get()-metodia yhdelle riville.

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

Parametrisoi kaikki

Älä koskaan ketjuta käyttäjän syötettä SQL:ään. Paikanhaltijat estävät SQL-injektiot ja lainausmerkkien käsittelyyn liittyvät virheet.

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

Tietojen tarjoaminen renderöijälle

Renderöijän ei pitäisi koskaan käyttää tietokantaa suoraan. Tarjoa kyselyfunktiot preload-sillan kautta IPC:n avulla.

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

Migraatiot

Kun skeemasi kehittyy, seuraa user_version-arvoa ja ota migraatiot käyttöön vaiheittain käynnistyksen yhteydessä.

Tiedoston tallennuspaikka

Sijoita tietokanta käyttäjätietojen hakemistoon kutsumalla app.getPath('userData')-metodia, jotta se säilyy päivityksissä ja siihen voi kirjoittaa.

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

Transaktiot turvallisuuden vuoksi

Ympäröi useat kirjoitustoiminnot transaktiolla, jotta ne joko onnistuvat kaikki tai palautuvat kaikki, jolloin tiedot pysyvät yhdenmukaisina.

Pikatarkistus

Testaa tietosi SQLitesta.

Kertaus

Opit lisäämään rakenteisen pysyvän tallennuksen SQLite-tietokannalla: valitsemaan ajurin, luomaan taulukoita, käyttämään valmisteltuja lauseita, tarjoamaan tietoja IPC:n kautta, tallentamaan tiedoston userData-hakemistoon sekä käyttämään transaktioita ja migraatioita.

Aloita maksutta

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
47

Usein kysytyt kysymykset

Onko oppitunti ”Upotetut tietokannat SQLitella” ilmainen?

Kyllä – oppitunnin ”Upotetut tietokannat SQLitella” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Electron-työpöytäsovellusten kehitys-kurssin, päivitä CoddyKit PROhon. Electron-työpöytäsovellusten kehitys-kurssilla on yhteensä 3 oppituntia.

Mitä opin oppitunnilla ”Upotetut tietokannat SQLitella”?

Tallenna rakenteista ja kyseltävää dataa Electron-sovellukseesi upotetun SQLite-tietokannan avulla ja siirry avain–arvo-tallennusta sekä raakadataa pidemmälle. Harjoittelet Electron-työpöytäsovellusten kehitys-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Electron-työpöytäsovellusten kehitys-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Electron-työpöytäsovellusten kehitys-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.

Kuinka kauan ”Upotetut tietokannat SQLitella”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Electron-työpöytäsovellusten kehitys-oppitunnilla?

Kyllä. Jokainen Electron-työpöytäsovellusten kehitys-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Paikallinen tallennus ja IndexedDB
  2. Tiedostojärjestelmän käyttö
  3. Upotetut tietokannat SQLitella
← Takaisin: Electron-työpöytäsovellusten kehitys