কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড SQLite-এ ContentValues ছাড়া সিনট্যাক্স ব্যবহার করে ডেটা সংরক্ষণ করার পদ্ধতি


অ্যান্ড্রয়েডে 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 আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করে ডিফল্ট স্ক্রিন দেখুন।

অ্যান্ড্রয়েড SQLite-এ ContentValues ছাড়া সিনট্যাক্স ব্যবহার করে ডেটা সংরক্ষণ করার পদ্ধতি

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

অ্যান্ড্রয়েড SQLite-এ ContentValues ছাড়া সিনট্যাক্স ব্যবহার করে ডেটা সংরক্ষণ করার পদ্ধতি

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

অ্যান্ড্রয়েড SQLite-এ ContentValues ছাড়া সিনট্যাক্স ব্যবহার করে ডেটা সংরক্ষণ করার পদ্ধতি


  1. Android SQLite-এ রেকর্ডের ID প্রিন্ট করার পদ্ধতি

  2. এন্ড্রয়েড SQLite-এ একাধিক কলাম সেপারেটর দিয়ে কনক্যাটিনেট করার পদ্ধতি

  3. এন্ড্রয়েড SQLite-এ MIN() ফাংশন ব্যবহার করার পদ্ধতি

  4. Android অ্যাপ্লিকেশনে SQLite ডেটাবেস ব্যবহারের পূর্ণাঙ্গ গাইড