HOWTO · SQLite

SQLite 전자 모듈

이 문서에서는 SQLite Electron을 사용하는 방법을 설명합니다.

이 페이지의 내용

SQLite는 빠르고 안정적이며 작은 독립형 완전한 기능을 갖춘 SQL 데이터베이스 엔진을 실행하도록 구축된 오픈 소스 C 언어 라이브러리입니다.

세계에서 가장 많이 사용되는 데이터베이스 엔진입니다. 내장형 휴대 전화, 컴퓨터 및 사람들이 일상 생활에서 사용하는 수많은 기타 응용 프로그램에 들어 있습니다.

Electron SQLite는 Electron이 재구축할 필요 없이 SQLite3 데이터베이스를 사용할 수 있게 해주는 모듈입니다. 현재 Linux(x64) 및 Windows(x32, x64)를 지원합니다.

SQLite 전자는 무엇입니까

SQLite Electron은 기본적으로 설치할 수 있는 모듈입니다. 패키지 관리자 npm을 사용하여 SQLite Electron을 설치할 수 있습니다.

이는 다음과 같은 방식으로 수행할 수 있습니다.

npm install SQLite-electron

이 패키지는 시스템이 지원되는 한 SQLite의 미리 빌드된 바이너리를 시스템에 설치하는 데 도움이 됩니다. 문제를 해결 방법으로 탐색할 수 있는 몇 가지 기본 제공 기능이 있습니다.

Electron에서 SQLite3 모듈을 사용하는 방법

태스크가 SQLite3 패키지를 사용하는 전자를 사용하여 애플리케이션을 개발해야 한다고 가정하십시오. 이 경우 해당 작업을 수행하도록 도와드리겠습니다.

전자와 함께 SQLite를 사용하는 쉬운 방법은 electron-builder를 사용하는 것입니다. 이를 달성하기 위한 첫 번째 단계는 package.json에 설치 후 단계를 추가하는 것입니다.

이는 다음과 같은 방식으로 수행됩니다.

"scripts": {
   "postinstall": "install-app-deps"
   ...
}

완료되면 필요한 종속 항목을 설치하고 빌드합니다.

npm install --save-dev electron-builder
npm install --save sqlite3
npm run postinstall

위에서 언급한 단계를 완료한 후 electron-builder는 Electron 바인딩에 적합한 이름으로 플랫폼용 네이티브 모듈을 빌드합니다.

예상대로 나중에 코드에서 요구할 수 있습니다. "/m" 스위치를 추가하여 병렬 구축을 활성화합니다.

두 가지 측면을 항상 고려해야 합니다.

  1. 전자가 모듈을 찾을 위치를 알고 있는지 확인해야 합니다. 이는 NODE_PATH를 설정하면 발생합니다.

    Electron은 NODE_PATH 환경 변수를 자동으로 설정할 수 없습니다. 원하는 모듈을 포함하는 모든 경로로 설정하여 수동으로 수행해야 합니다.

  2. 전자 헤더에 대해 네이티브 모듈을 컴파일합니다.

Electron SQLite의 기능

SQLite 전자 패키지에는 목적을 보다 효율적으로 달성하는 데 도움이 되는 여러 기능이 있습니다.

  1. dbPath: 데이터베이스 경로를 설정하는 변수입니다. 데이터베이스가 이미 있는 경우 데이터베이스에 연결합니다.

  2. executeQuery(Query =" " fetch =" ", values =[] ): 이 함수는 fetchvalues를 사용하여 단일 쿼리를 실행하는 작업을 담당합니다.

    그러나 fetch가 데이터 유형 문자열(예: 'all', '1', '2' 등)에 있어야 한다는 것을 아는 것이 중요합니다. 모든 값은 배열에 있어야 합니다. .

  3. executeMany( Query=" ", values = [] ): 이 함수는 여러 값을 사용하여 단일 쿼리를 실행하는 작업을 담당합니다.

  4. executeScript( scriptName =" ): 이 함수는 SQL 스크립트를 실행하는 역할을 합니다. scriptName이 스크립트의 이름인지 확인하십시오.

SQLite 전자 사용 방법

전자를 사용하는 동안 SQLite Electron은 주 프로세스에만 필요합니다. 다음 코드를 예로 들어 보겠습니다.

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

앞에서 언급했듯이 dbPath는 새 데이터베이스의 경로를 설정하고 기존 데이터베이스에 연결하는 임무를 맡고 노출되는 변수입니다. API를 사용하기 전에 이 변수를 수정하는 것이 가장 좋습니다.

다음과 같은 방법으로 이 작업을 수행하십시오.

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
})

실행 쿼리

executeQuery 기능은 단일 쿼리 실행을 담당합니다. 예를 들어:

SELECT * FROM main_sqlite  WHERE..

여기에서 값 배열을 통해 값을 전달하고 특정 가져오기 매개변수(예: "all", 1, 2, 3, 4, …)를 지정하여 데이터를 가져오는 함수를 호출할 수 있습니다. “무한대”.

쿼리 문자열에 값을 지정해서는 안 된다는 점을 아는 것이 중요합니다. 값 배열을 사용하여 쿼리에 대한 값을 제공합니다.

이 단계를 피하면 SQL 주입 공격이 발생할 수 있습니다. 예를 들어:

("INSERT INTO main_sqlite (NAME, DOB, AGE, MAIN_ADDRESS ) VALUES ( ?,?,?,?);"
, ["name", 4/08.2001, 20, "sample address"])

이 기능은 다음과 같은 방식으로 사용할 수 있습니다.

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);
      })

executeMany

이 함수는 여러 값을 사용하는 쿼리를 수행하는 데 사용됩니다.

예를 들어:

("INSERT INTO main_sqlite (NAME, DOB, AGE, MAIN_ADDRESS ) VALUES ( ?,?,?,?);"
, ["name", 4/08.2001, 20, "sample address"], ["name2", 4/09.2000, 21, "sample address2"])

executeMany에서 fetch 기능을 사용할 수 없습니다.

이 기능은 다음과 같은 방식으로 사용할 수 있습니다.

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)})

실행 스크립트

이 기능은 SQL 스크립트를 사용하는 동안 여러 쿼리를 실행합니다.

이는 다음과 같은 방식으로 수행됩니다.

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);');
  })

Electron SQLite를 사용해야 하는 경우 이 기사가 설치, 기능 및 사용법을 탐색하는 데 도움이 되었기를 바랍니다.