Tutorial capgo/capacitor-data-storage-sqlite

Tutorial ini akan memandu Anda melalui proses menggunakan paket @capgo/capacitor-data-storage-sqlite untuk mengimplementasikan penyimpanan permanen key-value untuk data string sederhana di aplikasi Ionic Capacitor Anda.

Prasyarat

Sebelum kita mulai, pastikan Anda telah menginstal yang berikut ini:

  • Nodejs
  • npm
  • Proyek Ionic Capacitor

Instalasi

1 Buka terminal atau command prompt Anda dan arahkan ke direktori proyek Anda.

2 Jalankan perintah berikut untuk menginstal paket:

npm install --save @capgo/capacitor-data-storage-sqlite

3 Setelah instalasi, sinkronkan proyek Capacitor Anda:

npx cap sync

4 Untuk platform Web, instal localforage:

npm install --save localforage

5 Untuk platform Electron, ikuti langkah tambahan ini:

npm install --save @capacitor-community/electron
npx cap add @capacitor-community/electron
cd electron
npm install --save sqlite3
npm install --save-dev @types/sqlite3
npm run build
cd ..
npx cap sync @capacitor-community/electron

Penggunaan

Sekarang kita telah menginstal paket, mari kita lihat bagaimana cara menggunakannya di aplikasi Anda.

Mengimpor Plugin

Pertama, impor plugin di file TypeScript Anda:

import { Capacitor } from '@capacitor/core';
import { CapacitorDataStorageSqlite, capDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

Membuka Penyimpanan

Untuk mulai menggunakan penyimpanan, Anda perlu membuka penyimpanan:

async function openStore() {
  const store = new CapacitorDataStorageSqlite(Capacitor.getPlatform());
  await store.openStore({ database: "my_db", table: "my_table" });
  return store;
}

Mengatur Nilai

Untuk mengatur nilai di penyimpanan:

async function setValue(store, key: string, value: string) {
  await store.set(key, value);
}

Mengambil Nilai

Untuk mengambil nilai dari penyimpanan:

async function getValue(store, key: string) {
  const result = await store.get(key);
  return result.value;
}

Memeriksa Apakah Kunci Ada

Untuk memeriksa apakah kunci ada di penyimpanan:

async function isKeyExists(store, key: string) {
  const result = await store.iskey(key);
  return result.result;
}

Menghapus Kunci

Untuk menghapus kunci dari penyimpanan:

async function removeKey(store, key: string) {
  await store.remove(key);
}

Menghapus Penyimpanan

Untuk menghapus semua data dari penyimpanan:

async function clearStore(store) {
  await store.clear();
}

Menutup Penyimpanan

Saat Anda selesai menggunakan penyimpanan, adalah praktik baik untuk menutupnya:

async function closeStore(store) {
  await store.closeStore();
}

Contoh Penggunaan

Berikut adalah contoh lengkap tentang cara menggunakan plugin:

import { Capacitor } from '@capacitor/core';
import { CapacitorDataStorageSqlite, capDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

async function dataStorageExample() {
  const store = new CapacitorDataStorageSqlite(Capacitor.getPlatform());
  
  try {
    // Open the store
    await store.openStore({ database: "my_db", table: "my_table" });

    // Set a value
    await store.set("myKey", "Hello, Capacitor!");

    // Get the value
    const result = await store.get("myKey");
    console.log("Value:", result.value);

    // Check if key exists
    const keyExists = await store.iskey("myKey");
    console.log("Key exists:", keyExists.result);

    // Remove the key
    await store.remove("myKey");

    // Clear the store
    await store.clear();

  } catch (error) {
    console.error("Error:", error);
  } finally {
    // Close the store
    await store.closeStore();
  }
}

dataStorageExample();

Kesimpulan

Anda kini telah belajar bagaimana menggunakan paket @capgo/capacitor-data-storage-sqlite untuk mengimplementasikan sistem penyimpanan key-value di aplikasi Ionic Capacitor Anda. Plugin ini menyediakan cara sederhana untuk menyimpan dan mengambil data string di berbagai platform, termasuk iOS, Android, Electron, dan Web.

Ingat untuk menangani kesalahan dengan tepat dan menutup penyimpanan saat Anda selesai menggunakannya. Untuk penggunaan yang lebih lanjut, termasuk bekerja dengan basis data terenkripsi, beberapa tabel, dan impor/ekspor JSON, rujuk ke dokumentasi API lengkap plugin ini.

Untuk informasi lebih rinci tentang API dan opsi yang tersedia, rujuk ke README atau dokumentasi paket.