This helper
can helping you when you using SQLite in Nativescript
Before you using this helper, you must be install plugin nativescript-community/sqlite, cause this helper running on this plugin.
See full changelogs here
- Download file sqlite_helper.js and save that file here :
\YOUR_NATIVESCRIPT_PROJECT\app
- Create
.db
file using SQLite Browser and createassets\db
folder on\YOUR_NATIVESCRIPT_PROJECT\app
- And after that put the
your_database.db
in\YOUR_NATIVESCRIPT_PROJECT\app\assets\db
- Open sqlite_helper.js file, you can adjust configuration here
const config = {
databaseName: "YOUR_DATABASE_NAME.db", // set your database name
debug: true, // set false for production and set true for development
paths: {
documentsFolder: knownFolders.documents(), // don't change this part, this for get root directory
assetsFolder: "assets/db", // location your sqlite file database
},
};
- import file sql_helper.js on your module, like :
import { SQL__select, SQL__selectRaw, SQL__insert, SQL__update, SQL__delete, SQL__truncate, SQL__query } from "~/sqlite_helper";
- Avaliable methode on
sql_helper.js
Method Description Return SQL__select(...) for get data from table Array SQL__selectRaw(...) for get data from table, same like SQL_select
, but here you can execute simple or advance query, like JOIN Query or etcArray SQL__insert(...) for insert data to table void SQL__update(...) for update data to table void SQL__delete(...) for delete data row from table void SQL__truncate(...) for clear all data on the table void SQL__query(...) for execute raw query like Create new Table or Etc ? - For details, you can look at the sqlite_helper.js file directly
Assummed I have a users table like this :
CREATE TABLE "users" (
"id" INTEGER NOT NULL UNIQUE,
"fullname" TEXT NOT NULL,
"about" TEXT DEFAULT NULL,
PRIMARY KEY("id" AUTOINCREMENT)
)
Before you can do something, make sure you already create the table. for create table in SQLite, you can use method SQL_query
from sqlite_helper.js
, example like this :
import { SQL__query } from "~/sqlite_helper";
SQL__query(`CREATE TABLE IF NOT EXISTS "users" (
"id" INTEGER NOT NULL UNIQUE,
"fullname" TEXT NOT NULL,
"about" TEXT DEFAULT NULL,
PRIMARY KEY("id" AUTOINCREMENT)
)`);
When you make create table query, make sure you use IF NOT EXISTS
in your query. This is useful to avoid double execution of your query.
SQL__select(tableName)
I want to get all user data from the table
import { SQL__select } from "~/sqlite_helper";
SQL__select("users").then((res) => {
console.log(res);
console.log(res.length);
});
SQL__select(tableName, fields, conditionalQuery)
I want to get all user data from table by fullname is john duo
import { SQL__select } from "~/sqlite_helper";
SQL__select("users", "*", "WHERE fullname='john duo'").then((res) => {
console.log(res);
console.log(res.length);
});
SQL__insert(tableName, data)
I want to create new user with fullname is Kang Cahya and about is Designer
import { SQL__insert } from "~/sqlite_helper";
SQL__insert("users", [
{ field: "fullname", value: "Kang Cahya" },
{ field: "about", value: "Designer" }
]);
SQL__update(tableName, data, id, conditionalQuery)
I want to update field ABOUT by user ID number 3
import { SQL__insert } from "~/sqlite_helper";
SQL__update("users", [{ field: "about", value: "Tester" }], 3);
SQL__update(tableName, data, id, conditionalQuery)
I want to update field about by user ID number 3
import { SQL__insert } from "~/sqlite_helper";
SQL__update("users", [{ field: "about", value: "Tester" }], null, "WHERE id='3'");