অ্যান্ড্রয়েডে SQLite ডাটাবেস পরিচিতি
SQLite একটি ওপেন-সোর্স SQL ডাটাবেস যা ডিভাইসে টেক্সট ফাইল হিসেবে ডেটা সংরক্ষণ করে। অ্যান্ড্রয়েডে বিল্ট-ইন SQLite ডাটাবেস ইমপ্লিমেন্টেশন থাকে। SQLite সকল রিলেশনাল ডাটাবেস বৈশিষ্ট্য সমর্থন করে। এই ডাটাবেস অ্যাক্সেস করার জন্য JDBC বা ODBC এর মতো কোনো কানেকশন স্থাপন করার প্রয়োজন নেই।
উদাহরণ: ContentValues ছাড়া SQLite-এ ডেটা সংরক্ষণ
নিচের উদাহরণটি দেখায় কিভাবে ContentValues ব্যবহার না করেই SQLite-এ ডেটা ইনসার্ট করা যায়।
ধাপ ১: নতুন প্রজেক্ট তৈরি
Android Studio-তে File → New Project যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট ফাইল সংশোধন (res/layout/activity_main.xml)
<?xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android" xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent" tools:context = ".MainActivity" android:orientation = "vertical"> <EditText android:id = "@+id/name" android:layout_width = "match_parent" android:hint = "Enter Name" android:layout_height = "wrap_content" /> <EditText android:id = "@+id/salary" android:layout_width = "match_parent" android:inputType = "numberDecimal" android:hint = "Enter Salary" android:layout_height = "wrap_content" /> <Button android:id = "@+id/save" android:text = "Save" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </LinearLayout>
উপরের কোডে নাম এবং বেতনের জন্য দুটি EditText এবং একটি Save বাটন রয়েছে। ব্যবহারকারী Save বাটনে ক্লিক করলে ডেটা SQLite ডাটাবেসে সংরক্ষিত হবে।
ধাপ ৩: MainActivity.java এ কোড যোগ করুন (src/MainActivity.java)
package com.example.andy.myapplication; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { Button save; EditText name, salary; @Override protected void onCreate(Bundle readdInstanceState) { super.onCreate(readdInstanceState); setContentView(R.layout.activity_main); final DatabaseHelper helper = new DatabaseHelper(this); name = findViewById(R.id.name); salary = findViewById(R.id.salary); findViewById(R.id.save).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!name.getText().toString().isEmpty() && !salary.getText().toString().isEmpty()) { if (helper.insert(name.getText().toString(), salary.getText().toString())) { Toast.makeText(MainActivity.this, "Inserted", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this, "NOT Inserted", Toast.LENGTH_LONG).show(); } } else { name.setError("Enter NAME"); salary.setError("Enter Salary"); } } }); } }
ধাপ ৪: DatabaseHelper.java তৈরি করুন (src/DatabaseHelper.java)
package com.example.andy.myapplication; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "salaryDatabase1"; public static final String CONTACTS_TABLE_NAME = "SalaryDetails"; public DatabaseHelper(Context context) { super(context,DATABASE_NAME,null,1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL( "create table "+ CONTACTS_TABLE_NAME +"(id INTEGER PRIMARY KEY AUTOINCREMENT, name text,salary text,CHECK (salary> = 10000) )" ); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS "+CONTACTS_TABLE_NAME); onCreate(db); } public boolean insert(String s, String s1) { SQLiteDatabase db = this.getWritableDatabase(); db.execSQL("INSERT INTO "+ CONTACTS_TABLE_NAME +"("+"id,name,salary"+")"+" VALUES "+" ("+"1"+",'"+s+"','"+s1+"')"); /* ContentValues contentValues = new ContentValues(); contentValues.put("name", s); contentValues.put("salary", s1); db.insert(CONTACTS_TABLE_NAME, null, contentValues);*/ return true; } }
দ্রষ্টব্য: এখানে `insert` মেথডে خام SQL ক্যোয়ারি ব্যবহার করা হয়েছে, ContentValues এর পরিবর্তে। টেবিল তৈরি করার সময় স্যালারির জন্য CHECK কনস্ট্রেইন্ট দিয়ে ন্যূনতম ১০০০০ নিশ্চিত করা হয়েছে।
অ্যাপ্লিকেশন চালানোর পদ্ধতি
আপনার অ্যান্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত থাকলে, Android Studio-তে প্রজেক্টের এক্টিভিটি ফাইল খুলে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করে ডিফল্ট স্ক্রিন দেখুন।

নিচের মতো মান দিয়ে Save বাটনে ক্লিক করুন:

ফলাফল যাচাই করতে Android Studio-তে নিচের স্ক্রিনশট অনুসরণ করুন:
