SQLite 전자 모듈
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"
스위치를 추가하여 병렬 구축을 활성화합니다.
두 가지 측면을 항상 고려해야 합니다.
-
전자가 모듈을 찾을 위치를 알고 있는지 확인해야 합니다. 이는
NODE_PATH
를 설정하면 발생합니다.Electron은
NODE_PATH
환경 변수를 자동으로 설정할 수 없습니다. 원하는 모듈을 포함하는 모든 경로로 설정하여 수동으로 수행해야 합니다. -
전자 헤더에 대해 네이티브 모듈을 컴파일합니다.
Electron SQLite의 기능
SQLite 전자 패키지에는 목적을 보다 효율적으로 달성하는 데 도움이 되는 여러 기능이 있습니다.
-
dbPath
: 데이터베이스 경로를 설정하는 변수입니다. 데이터베이스가 이미 있는 경우 데이터베이스에 연결합니다. -
executeQuery(Query =" " fetch =" ", values =[] )
: 이 함수는fetch
및values
를 사용하여 단일 쿼리를 실행하는 작업을 담당합니다.그러나
fetch
가 데이터 유형 문자열(예:'all'
,'1'
,'2'
등)에 있어야 한다는 것을 아는 것이 중요합니다. 모든 값은 배열에 있어야 합니다. . -
executeMany( Query=" ", values = [] )
: 이 함수는 여러 값을 사용하여 단일 쿼리를 실행하는 작업을 담당합니다. -
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를 사용해야 하는 경우 이 기사가 설치, 기능 및 사용법을 탐색하는 데 도움이 되었기를 바랍니다.
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