SQLite হল একটি লাইটওয়েট, সেমি-স্ট্রাকচারড ডেটাবেস, যা অফলাইন মোডে ডেটা সংরক্ষণ এবং ম্যানেজ করার জন্য ব্যবহার করা হয়। এটি ডট নেট MAUI (মাল্টি-প্ল্যাটফর্ম অ্যাপ্লিকেশন UI) এর একটি জনপ্রিয় ডেটাবেস সমাধান, বিশেষ করে যখন অ্যাপ্লিকেশনটি লোকাল ডেটাবেস ব্যবস্থাপনা প্রয়োজন হয়।
SQLite খুবই কমপ্যাক্ট এবং ব্যবহারে সহজ, যা মোবাইল এবং ডেস্কটপ অ্যাপ্লিকেশনগুলিতে ডেটা সংরক্ষণ করার জন্য আদর্শ। SQLite মূলত ফাইল-বেসড ডেটাবেস, যা সার্ভার-ভিত্তিক ডেটাবেসের তুলনায় অনেক হালকা এবং দ্রুত।
SQLite ব্যবহার করার জন্য প্রাথমিক পদক্ষেপ:
SQLite NuGet প্যাকেজ ইনস্টল করা: প্রথমে, SQLite ডাটাবেস ব্যবহারের জন্য SQLite-net-pcl নামক NuGet প্যাকেজটি ইনস্টল করতে হবে।
NuGet ইনস্টলেশন:
Install-Package SQLite-net-pclSQLiteConnection তৈরি করা: SQLite ডাটাবেস ব্যবহার করতে প্রথমে SQLiteConnection তৈরি করতে হয়, যা ডাটাবেস ফাইলের সাথে সংযুক্ত হয়।
using SQLite; using System.IO; // ডাটাবেস ফাইলের পাথ নির্ধারণ string databasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "mydatabase.db"); // SQLiteConnection তৈরি করা var dbConnection = new SQLiteConnection(databasePath);টেবিল তৈরি করা: SQLite ডাটাবেসে টেবিল তৈরি করতে CreateTable মেথড ব্যবহার করা হয়। সাধারণত, এটি মডেল ক্লাসের ভিত্তিতে টেবিল তৈরি করে।
মডেল ক্লাস:
public class Person { [PrimaryKey, AutoIncrement] public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }টেবিল তৈরি:
dbConnection.CreateTable<Person>();ডেটা ইনসার্ট করা: SQLite তে ডেটা ইনসার্ট করার জন্য Insert মেথড ব্যবহার করা হয়।
var person = new Person { Name = "John", Age = 30 }; dbConnection.Insert(person);ডেটা রিড করা: ডাটাবেস থেকে ডেটা রিড করার জন্য Table বা Query ব্যবহার করা যায়।
var people = dbConnection.Table<Person>().ToList();ডেটা আপডেট করা: ডেটা আপডেট করার জন্য Update মেথড ব্যবহার করা হয়।
var person = dbConnection.Table<Person>().FirstOrDefault(p => p.Id == 1); if (person != null) { person.Name = "Updated Name"; dbConnection.Update(person); }ডেটা ডিলিট করা: ডেটা ডিলিট করার জন্য Delete মেথড ব্যবহার করা হয়।
var person = dbConnection.Table<Person>().FirstOrDefault(p => p.Id == 1); if (person != null) { dbConnection.Delete(person); }
SQLite-এ Local Database এর সুবিধা:
- অফলাইন সাপোর্ট: SQLite একটি লোকাল ডেটাবেস, তাই ইন্টারনেট কানেকশন ছাড়া এটি কাজ করতে পারে।
- কমপ্যাক্ট: SQLite হল সেমি-স্ট্রাকচারড ডেটাবেস, যার ফলে এটি ফাইল সিস্টেমের মধ্যে খুব কম জায়গা নেয় এবং পারফরম্যান্সে দ্রুত।
- সহজ ইন্টিগ্রেশন: SQLite কোডে ইন্টিগ্রেট করা খুব সহজ এবং এটি কোনো সার্ভার ছাড়াই স্থানীয় ডেটাবেস পরিচালনা করতে সাহায্য করে।
- পোর্টেবল: SQLite ডাটাবেস ফাইলটি পোর্টেবল, তাই এটি সহজেই এক প্ল্যাটফর্ম থেকে অন্য প্ল্যাটফর্মে স্থানান্তরিত করা যেতে পারে।
SQLite-এ Local Database ম্যানেজমেন্টের উদাহরণ:
ধরা যাক, আমরা একটি প্রজেক্ট তৈরি করছি যেখানে ব্যবহারকারীদের তথ্য যেমন নাম এবং বয়স সংরক্ষণ করা হবে। আমরা একটি Person টেবিল তৈরি করব এবং ব্যবহারকারীদের তথ্য যোগ, রিড, আপডেট এবং ডিলিট করার জন্য ফাংশন তৈরি করব।
Complete Example:
using SQLite;
using System;
using System.IO;
using System.Linq;
public class Person
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public class DatabaseService
{
private readonly SQLiteConnection _dbConnection;
public DatabaseService()
{
string databasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "mydatabase.db");
_dbConnection = new SQLiteConnection(databasePath);
_dbConnection.CreateTable<Person>(); // Create table if it doesn't exist
}
public void AddPerson(string name, int age)
{
var person = new Person { Name = name, Age = age };
_dbConnection.Insert(person); // Insert a new record
}
public void ShowAllPeople()
{
var people = _dbConnection.Table<Person>().ToList(); // Retrieve all people from the database
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
public void UpdatePerson(int id, string newName, int newAge)
{
var person = _dbConnection.Table<Person>().FirstOrDefault(p => p.Id == id); // Find a person by Id
if (person != null)
{
person.Name = newName;
person.Age = newAge;
_dbConnection.Update(person); // Update the person's details
}
}
public void DeletePerson(int id)
{
var person = _dbConnection.Table<Person>().FirstOrDefault(p => p.Id == id); // Find a person by Id
if (person != null)
{
_dbConnection.Delete(person); // Delete the person record
}
}
}
public class Program
{
public static void Main(string[] args)
{
var dbService = new DatabaseService();
dbService.AddPerson("Alice", 25);
dbService.AddPerson("Bob", 30);
Console.WriteLine("People in Database:");
dbService.ShowAllPeople();
dbService.UpdatePerson(1, "Alicia", 26);
Console.WriteLine("\nAfter Update:");
dbService.ShowAllPeople();
dbService.DeletePerson(2);
Console.WriteLine("\nAfter Deletion:");
dbService.ShowAllPeople();
}
}
সারাংশ:
SQLite ব্যবহার করে Local Database Management .NET MAUI অ্যাপ্লিকেশনে খুবই সহজ এবং কার্যকর। SQLite ফাইল-বেসড ডেটাবেস হওয়ায় এটি কম্প্যাক্ট, দ্রুত এবং সহজে ব্যবহৃত হয়। আপনার অ্যাপ্লিকেশনের ডেটা এক্সেস এবং ম্যানিপুলেশন করতে SQLite এর সাহায্যে আপনি দ্রুত এবং সহজে ডেটাবেস পরিচালনা করতে পারবেন।
Read more