SQLite হলো একটি হালকা ওয়েট, সার্ভার-লেস ডেটাবেস সিস্টেম যা ইলেকট্রন অ্যাপ্লিকেশনে ডেটাবেস পরিচালনার জন্য ব্যাপকভাবে ব্যবহৃত হয়। Electron অ্যাপ্লিকেশনগুলোতে SQLite ইন্টিগ্রেশন করতে আমরা sqlite3 অথবা better-sqlite3 প্যাকেজ ব্যবহার করে SQLite ডেটাবেসের সাথে যোগাযোগ করতে পারি।
SQLite ইন্টিগ্রেশন করার জন্য প্রয়োজনীয় পদক্ষেপ:
১. SQLite প্যাকেজ ইনস্টল করা
Electron অ্যাপ্লিকেশনে SQLite ব্যবহার করতে প্রথমে আপনাকে SQLite এর জন্য একটি Node.js প্যাকেজ ইনস্টল করতে হবে। সাধারণত sqlite3 অথবা better-sqlite3 প্যাকেজ ব্যবহৃত হয়।
প্যাকেজ ইনস্টল করা:
npm install sqlite3 --save
অথবা
npm install better-sqlite3 --save
sqlite3 একটি অ্যাসিঙ্ক্রোনাস প্যাকেজ, যেখানে better-sqlite3 সিনক্রোনাস (sync) ডেটাবেস ইন্টারঅ্যাকশন সরবরাহ করে, যা অনেক দ্রুত এবং সহজ ব্যবহারের জন্য উপযোগী।
২. SQLite ডেটাবেস কনফিগারেশন এবং ব্যবহার
এখানে আমরা sqlite3 প্যাকেজ ব্যবহার করে ডেটাবেস তৈরি এবং পরিচালনা করার একটি উদাহরণ দেখাবো।
উদাহরণ: Main Process - SQLite ইন্টিগ্রেশন
main.js (Main Process)
const { app, BrowserWindow } = require('electron');
const sqlite3 = require('sqlite3').verbose(); // sqlite3 প্যাকেজ ইনস্টল করা
let mainWindow;
// SQLite ডেটাবেস সংযোগ তৈরি
const db = new sqlite3.Database('./mydb.db', (err) => {
if (err) {
console.error('ডেটাবেস সংযোগে সমস্যা:', err.message);
} else {
console.log('SQLite ডেটাবেস সংযোগ সফল');
}
});
// ডেটাবেস টেবিল তৈরি
db.run('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)', (err) => {
if (err) {
console.error('টেবিল তৈরি করতে সমস্যা:', err.message);
} else {
console.log('টেবিল তৈরি করা হয়েছে');
}
});
app.on('ready', () => {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true, // Node.js ইন্টিগ্রেশন সক্রিয় করা
},
});
mainWindow.loadFile('index.html');
});
// ডেটাবেস বন্ধ করা অ্যাপ বন্ধ হওয়ার পর
app.on('quit', () => {
db.close((err) => {
if (err) {
console.error('ডেটাবেস বন্ধ করতে সমস্যা:', err.message);
} else {
console.log('ডেটাবেস বন্ধ');
}
});
});
এখানে আমরা একটি SQLite ডেটাবেস mydb.db তৈরি করেছি এবং users নামক একটি টেবিল তৈরি করেছি, যেখানে id, name, এবং email কলাম রয়েছে।
৩. ডেটা ইনসার্ট এবং রিট্রিভ (লেখা ও পড়া)
SQLite ডেটাবেসে ডেটা ইনসার্ট (insert) এবং রিড (read) করার জন্য বিভিন্ন SQL কমান্ড ব্যবহার করা হয়।
ডেটা ইনসার্ট করা:
// ডেটাবেসে ডেটা ইনসার্ট করা
const insertData = (name, email) => {
db.run('INSERT INTO users (name, email) VALUES (?, ?)', [name, email], function(err) {
if (err) {
console.error('ডেটা ইনসার্ট করতে সমস্যা:', err.message);
} else {
console.log(`ডেটা সফলভাবে ইনসার্ট করা হয়েছে, ID: ${this.lastID}`);
}
});
};
ডেটা পড়া:
// ডেটাবেস থেকে ডেটা পড়া
const getData = () => {
db.all('SELECT * FROM users', [], (err, rows) => {
if (err) {
throw err;
}
console.log('প্রাপ্ত ডেটা:', rows);
});
};
ডেটা ইনসার্ট এবং পড়ার উদাহরণ
Main Process (main.js)
// ডেটা ইনসার্ট
insertData('John Doe', 'john.doe@example.com');
// ডেটা পড়া
getData();
এখানে, insertData() ফাংশন ব্যবহার করে ডেটাবেসে নতুন ব্যবহারকারী যোগ করা হচ্ছে এবং getData() ফাংশন ব্যবহার করে সমস্ত ব্যবহারকারীর তথ্য পড়া হচ্ছে।
৪. Renderer Process থেকে SQLite এর সাথে যোগাযোগ
IPC (Inter-Process Communication) ব্যবহার করে আপনি Main Process থেকে Renderer Process এ ডেটা পাঠাতে পারেন এবং সেখানে সেই ডেটা প্রদর্শন করতে পারেন।
Renderer Process (index.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SQLite Example</title>
</head>
<body>
<h1>SQLite Example</h1>
<button id="loadData">Load Data</button>
<div id="userData"></div>
<script>
const { ipcRenderer } = require('electron');
document.getElementById('loadData').addEventListener('click', () => {
ipcRenderer.send('get-users'); // Main Process-এ ডেটা পাঠানো
});
ipcRenderer.on('send-users', (event, data) => {
document.getElementById('userData').innerHTML = JSON.stringify(data); // ডেটা প্রদর্শন করা
});
</script>
</body>
</html>
Main Process - Renderer Process এ ডেটা পাঠানো
// Renderer Process থেকে ডেটা পাঠানোর জন্য
ipcMain.on('get-users', (event) => {
db.all('SELECT * FROM users', [], (err, rows) => {
if (err) {
throw err;
}
event.reply('send-users', rows); // ডেটা Renderer Process-এ পাঠানো
});
});
এখানে, get-users মেসেজ Renderer Process থেকে Main Process এ পাঠানো হয় এবং Main Process send-users মেসেজ ব্যবহার করে সমস্ত ব্যবহারকারীর তথ্য Renderer Process-এ পাঠিয়ে দেয়।
সারাংশ
- SQLite একটি হালকা ওয়েট ডেটাবেস যা Electron অ্যাপ্লিকেশনে ডেটা পরিচালনা করতে ব্যবহৃত হয়।
- Node.js এর
sqlite3প্যাকেজ ব্যবহার করে Electron অ্যাপ্লিকেশনে SQLite ডেটাবেস সংযোগ করা হয়। - Main Process-এ SQLite ডেটাবেস সংযোগ তৈরি এবং Renderer Process থেকে IPC ব্যবহার করে ডেটা পাঠানো হয়।
- SQL কমান্ড যেমন
INSERT,SELECTইত্যাদি ব্যবহার করে ডেটাবেসে ডেটা ইনসার্ট ও পড়া যায়।
SQLite ইন্টিগ্রেশন ব্যবহার করে Electron অ্যাপ্লিকেশনগুলোতে ডেটাবেস ম্যানেজমেন্ট অত্যন্ত সহজ এবং কার্যকরী হতে পারে।
Read more