Módulo de electrones SQLite

Bilal Shahid 12 octubre 2023
  1. ¿Qué es SQLite Electron?
  2. Cómo usar el módulo SQLite3 con Electron
  3. Cómo usar SQLite Electron
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:

  1. 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.

  2. 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.

  1. 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.

  2. executeQuery(Query = " fetch =", valores =[] ): esta función tiene la tarea de ejecutar una sola consulta con fetch y values.

    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 .

  3. executeMany( Query= ", valores = [] ): esta función tiene la tarea de ejecutar una sola consulta usando múltiples valores.

  4. 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.

Bilal Shahid avatar Bilal Shahid avatar

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