Módulo de electrones SQLite
SQLite es una biblioteca de lenguaje C de código abierto creada para ejecutar un motor de base de datos SQL rápido, confiable, pequeño, autónomo y con todas las funciones.
Es el motor de base de datos más utilizado en el mundo; viene en teléfonos móviles integrados, computadoras e innumerables otras aplicaciones que la gente usa en su vida cotidiana.
Electron SQLite es un módulo que permite a electron utilizar la base de datos SQLite3
sin necesidad de reconstruir. Actualmente, es compatible con Linux (x64) y Windows (x32, x64).
¿Qué es SQLite Electron?
SQLite Electron es esencialmente un módulo que se puede instalar. Puede usar el administrador de paquetes npm
para instalar SQLite Electron.
Esto se puede hacer de la siguiente manera:
npm install SQLite-electron
Este paquete ayuda a instalar los archivos binarios precompilados de SQLite en su sistema, siempre que su sistema sea compatible. Tiene varias funciones integradas que le permiten navegar sus problemas hacia una solución.
Cómo usar el módulo SQLite3
con Electron
Supongamos que una tarea requiere que desarrolle una aplicación usando electron que usa el paquete SQLite3
. En ese caso, le ayudaremos a realizar esa tarea.
Una manera fácil de usar SQLite con el electrón es con un generador de electrones
. El primer paso para lograr esto es agregar un paso posterior a la instalación en su paquete.json
.
Esto se hace de la siguiente manera:
"scripts": {
"postinstall": "install-app-deps"
...
}
Una vez que haya terminado, instale las dependencias necesarias y compile.
npm install --save-dev electron-builder
npm install --save sqlite3
npm run postinstall
Una vez que haya terminado con los pasos mencionados anteriormente, el constructor de electrones
construirá el módulo nativo para su plataforma con el nombre correcto para el enlace de Electron.
Puede requerirlo
en el código más tarde, como se esperaba. Agregue el interruptor "/m"
para habilitar la construcción paralela.
Hay que tener siempre en cuenta dos aspectos:
-
Debe asegurarse de que electron sepa dónde encontrar sus módulos. Esto sucede configurando
NODE_PATH
.Electron no puede configurar las variables ambientales
NODE_PATH
automáticamente. Debe hacerlo manualmente configurándolo en todas las rutas que contienen los módulos deseados. -
Compile módulos nativos contra encabezados de electrones.
Funciones de Electron SQLite
El paquete electrónico de SQLite tiene varias funciones para ayudarlo a lograr su propósito de manera más eficiente.
-
dbPath
: esta es una variable encargada de establecer su ruta para la base de datos. Si la base de datos ya existe, se conecta a la base de datos. -
executeQuery(Query = " fetch =", valores =[] )
: esta función tiene la tarea de ejecutar una sola consulta confetch
yvalues
.Sin embargo, es crucial saber que el
fetch
debe estar en una cadena de tipo de datos, por ejemplo,'all'
,'1'
,'2'
, etc. Todos los valores deben estar en la matriz . -
executeMany( Query= ", valores = [] )
: esta función tiene la tarea de ejecutar una sola consulta usando múltiples valores. -
executeScript( scriptName =" )": esta función tiene la tarea de ejecutar el script SQL. Asegúrese de que
scriptName` sea el nombre del script.
Cómo usar SQLite Electron
Al usar un electrón, el electrón de SQLite solo debería ser necesario para el proceso principal. Tome el siguiente código como ejemplo.
const {app, BrowserWindow} = require('electron')
const sqlite = require('sqlite-electron')
function createWindow() {
// Add your code here
}
app.whenReady().then(
() => {
// Add your code here
})
app.on(
'window-all-closed',
() => {
// Add your code here
})
dbPath
Como mencionamos antes, dbPath
es una variable que está expuesta y tiene la tarea de establecer la ruta de la nueva base de datos y conectarse a una base de datos existente. Sería mejor arreglar esta variable antes de usar cualquier API
.
Haz esto de la siguiente manera:
const {app, BrowserWindow, ipcMain} = require('electron')
const SQLite = require('SQLite-electron')
function createWindow() {
// Your Code
}
app.whenReady().then(
() => {
// Your Code
})
app.on(
'window-all-closed',
() => {
// Your Code
})
ipcMain.handle('databasePath', (event, dbPath) => {
SQLite.dbPath = dbPath
return true
})
ejecutar consulta
La función executeQuery
se encarga de ejecutar cualquier consulta individual. Por ejemplo:
SELECT * FROM main_sqlite WHERE..
Aquí, puede pasar valores a través de la matriz de valores y llamar a la función para obtener datos especificando parámetros de recuperación específicos, por ejemplo, "todos"
, 1
, 2
, 3
, 4
, … “infinidad”.
Es esencial saber que nunca se deben dar valores en la cadena de consulta. Utilice la matriz de valores para proporcionar valores para la consulta.
Evitar este paso puede provocar ataques de inyección SQL. Por ejemplo:
("INSERT INTO main_sqlite (NAME, DOB, AGE, MAIN_ADDRESS ) VALUES ( ?,?,?,?);"
, ["name", 4/08.2001, 20, "sample address"])
Puede utilizar esta función de la siguiente manera:
const {app, BrowserWindow, ipcMain} = require('electron')
const sqlite = require('sqlite-electron')
function createWindow() {
// Add your code
}
app.whenReady().then(
() => {
// Add your code
})
app.on(
'window-all-closed',
() => {
// Add your code
})
ipcMain.handle('databasePath', (event, dbPath) => {
SQLite.dbPath = dbPath
return true
})
ipcMain.handle(
'executeQuery', async (event_name, query_name, fetch_name, val) => {
return await sqlite.executeQuery(query_name, fetch_name, val);
})
ejecutarmuchos
Esta función se utiliza para realizar una consulta que utiliza varios valores.
Por ejemplo:
("INSERT INTO main_sqlite (NAME, DOB, AGE, MAIN_ADDRESS ) VALUES ( ?,?,?,?);"
, ["name", 4/08.2001, 20, "sample address"], ["name2", 4/09.2000, 21, "sample address2"])
En executeMany
, la función fetch
no está disponible.
La función se puede utilizar de la siguiente manera:
const {app, BrowserWindow, ipcMain} = require('electron')
const SQLite = require('SQLite-electron')
function createWindow() {
// Add your Code
}
app.whenReady().then(
() => {
// Add your Code
})
app.on(
'window-all-closed',
() => {
// Add your Code
})
ipcMain.handle('databasePath', (event, dbPath) => {
SQLite.dbPath = dbPath
return true
})
ipcMain.handle(
'executeMany',
async (event_name, query_name, val) => {
return await sqlite.executeMany(query_name, val)})
ejecutar script
Esta función ejecuta múltiples consultas mientras usa scripts SQL.
Esto se hace de la siguiente manera:
const {app, BrowserWindow, ipcMain} = require('electron')
const SQLite = require('SQLite-electron')
function createWindow() {
// Add your Code
}
app.whenReady().then(
() => {
// Add your Code
})
app.on(
'window-all-closed',
() => {
// Add your Code
})
ipcMain.handle('databasePath', (event_name, dbPath) => {
SQLite.dbPath = dbPath
return true
})
ipcMain.handle('executeScript', async (event_name, pathOfScript) => {
return await sqlite.executeScript(pathOfScript);
// or
return await sqlite.executeScript(
'CREATE TABLE IF NOT EXISTS main_sqlite (USERID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,FULLNAME TEXT NOT NULL,FULLADDRESS CHAR(50) NOT NULL);');
})
Si necesita usar electron SQLite, esperamos que este artículo lo haya ayudado a navegar por su instalación, funciones y uso.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub