@capgo/capacitor-data-storage-sqlite
CAPACITOR 6
Note from the Owner
This Plugin has been transfered to Capgo org after his original creator @jepiqueau decide to retire.
We will forever be thankful for the work he did.
Capacitor Data Storage SQlite Plugin is a custom Native Capacitor plugin providing a key-value permanent store for simple data of type string only to SQLite on IOS, Android and Electron platforms and to IndexDB for the Web platform.
Maintainer | GitHub | Social |
---|---|---|
Martin Donadieu | riderx | |
Quéau Jean Pierre | jepiqueau |
The plugin follows the guidelines from the Capacitor Team
,
meaning that it will not work in IE11 without additional JavaScript transformations, e.g. with Babel.
npm install --save @capgo/capacitor-data-storage-sqlite
npx cap sync
On iOS, no further steps are needed.
On Android, no further steps are needed.
On Web,
npm install --save localforage
npm install --save @capacitor-community/electron
npx cap add @capacitor-community/electron
Go to the Electron folder of your application
cd electron
npm install --save sqlite3
npm install --save-dev @types/sqlite3
npm run build
cd ..
npx cap sync @capacitor-community/electron
Then build YOUR_APPLICATION
npm run build
npx cap copy
npx cap copy @capacitor-community/electron
npx cap open ios
npx cap open android
npx cap open @capacitor-community/electron
ionic serve
No configuration required for this plugin
Name | Android | iOS | Electron | Web |
---|---|---|---|---|
openStore (non-encrypted DB) | ✅ | ✅ | ✅ | ✅ |
openStore (encrypted DB) | ✅ | ✅ | ❌ | ❌ |
closeStore | ✅ | ✅ | ✅ | ❌ |
isStoreOpen | ✅ | ✅ | ✅ | ❌ |
isStoreExists | ✅ | ✅ | ✅ | ❌ |
deleteStore | ✅ | ✅ | ✅ | ❌ |
setTable | ✅ | ✅ | ✅ | ✅ |
set | ✅ | ✅ | ✅ | ✅ |
get | ✅ | ✅ | ✅ | ✅ |
iskey | ✅ | ✅ | ✅ | ✅ |
keys | ✅ | ✅ | ✅ | ✅ |
values | ✅ | ✅ | ✅ | ✅ |
filtervalues | ✅ | ✅ | ✅ | ✅ |
keysvalues | ✅ | ✅ | ✅ | ✅ |
remove | ✅ | ✅ | ✅ | ✅ |
clear | ✅ | ✅ | ✅ | ✅ |
isTable | ✅ | ✅ | ✅ | ✅ |
tables | ✅ | ✅ | ✅ | ✅ |
deleteTable | ✅ | ✅ | ✅ | ❌ |
isJsonValid | ✅ | ✅ | ✅ | ✅ |
importFromJson | ✅ | ✅ | ✅ | ✅ |
exportToJson | ✅ | ✅ | ✅ | ✅ |
The IOS & Android code use SQLCipher allowing for database encryption.
The Android code is now based on androidx.sqlite
. The database is not closed anymore after each transaction for performance improvement.
You must manage the close
of the database before opening a new database.
The Web code use localforage
package to store the datastore in the Browser.
The Electron code use sqlite3
package
Thanks goes to these wonderful people (emoji key):
Jean Pierre Quéau 💻 |
Matthew Burke 📖 |
Kevin van Schaijk 💻 |
Andy Garbett 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Retirement message of @jepiqueau -->
I have been dedicated to developing and maintaining this plugin for many years since the inception of Ionic Capacitor. Now, at 73+ years old, and with my MacBook Pro becoming obsolete for running Capacitor 6 for iOS, I have made the decision to cease maintenance of the plugin. If anyone wishes to take ownership of this plugin, they are welcome to do so.
It has been a great honor to be part of this development journey alongside the developer community. I am grateful to see many of you following me on this path and incorporating the plugin into your applications. Your comments and suggestions have motivated me to continuously improve it.
I have made this decision due to several family-related troubles that require my full attention and time. Therefore, I will not be stepping back. Thank you to all of you for your support.
End <--
capgo/capacitor-data-storage-sqlite Tutorial
Dieses Tutorial führt Sie durch den Prozess der Verwendung des Pakets @capgo/capacitor-data-storage-sqlite
, um einen permanenten Schlüssel-Werte-Speicher für einfache Zeichenfolgendaten in Ihrer Ionic Capacitor-App zu implementieren.
Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes installiert haben:
1 Öffnen Sie Ihr Terminal oder Eingabeaufforderung und navigieren Sie zu Ihrem Projektverzeichnis.
2 Führen Sie den folgenden Befehl aus, um das Paket zu installieren:
npm install --save @capgo/capacitor-data-storage-sqlite
3 Nach der Installation synchronisieren Sie Ihr Capacitor-Projekt:
npx cap sync
4 Für die Web-Plattform installieren Sie localforage:
npm install --save localforage
5 Für die Electron-Plattform folgen Sie diesen zusätzlichen Schritten:
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
Jetzt, da wir das Paket installiert haben, schauen wir uns an, wie es in Ihrer App verwendet wird.
Zuerst importieren Sie das Plugin in Ihre TypeScript-Datei:
import { Capacitor } from '@capacitor/core';
import { CapacitorDataStorageSqlite, capDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';
Um den Speicher zu verwenden, müssen Sie einen Speicher öffnen:
async function openStore() {
const store = new CapacitorDataStorageSqlite(Capacitor.getPlatform());
await store.openStore({ database: "my_db", table: "my_table" });
return store;
}
Um einen Wert im Speicher festzulegen:
async function setValue(store, key: string, value: string) {
await store.set(key, value);
}
Um einen Wert aus dem Speicher abzurufen:
async function getValue(store, key: string) {
const result = await store.get(key);
return result.value;
}
Um zu überprüfen, ob ein Schlüssel im Speicher vorhanden ist:
async function isKeyExists(store, key: string) {
const result = await store.iskey(key);
return result.result;
}
Um einen Schlüssel aus dem Speicher zu entfernen:
async function removeKey(store, key: string) {
await store.remove(key);
}
Um alle Daten aus dem Speicher zu löschen:
async function clearStore(store) {
await store.clear();
}
Wenn Sie mit dem Speicher fertig sind, ist es eine gute Praxis, ihn zu schließen:
async function closeStore(store) {
await store.closeStore();
}
Hier ist ein vollständiges Beispiel dafür, wie man das Plugin verwendet:
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();
Sie haben jetzt gelernt, wie man das Paket @capgo/capacitor-data-storage-sqlite
verwendet, um ein Schlüssel-Werte-Speichersystem in Ihrer Ionic Capacitor-App zu implementieren. Dieses Plugin bietet eine einfache Möglichkeit, Zeichenfolgendaten über verschiedene Plattformen hinweg zu speichern und abzurufen, einschließlich iOS, Android, Electron und Web.
Denken Sie daran, Fehler angemessen zu behandeln und den Speicher zu schließen, wenn Sie fertig sind. Für eine fortgeschrittene Verwendung, einschließlich der Arbeit mit verschlüsselten Datenbanken, mehreren Tabellen und JSON-Import/Export, beziehen Sie sich auf die vollständige API-Dokumentation des Plugins.
Für detailliertere Informationen über die API und verfügbare Optionen konsultieren Sie die README oder Dokumentation des Pakets.