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

Android SQLite-এ NOT NULL কনস্ট্রেইন্ট কীভাবে ব্যবহার করবেন?

Android SQLite-এ NOT NULL কনস্ট্রেইন্ট ব্যবহার করার নির্দেশিকা

এক্সাম্পলে যাওয়ার আগে, আমাদের জানতে হবে Android-এ SQLite ডাটাবেস কী। SQLite একটি ওপেন-সোর্স SQL ডাটাবেস যা ডিভাইসে টেক্সট ফাইল আকারে ডেটা সংরক্ষণ করে। Android-এ বিল্ট-ইন SQLite ডাটাবেস ইমপ্লিমেন্টেশন থাকে। SQLite সমস্ত রিলেশনাল ডাটাবেস ফিচার সাপোর্ট করে। এই ডাটাবেস অ্যাক্সেস করতে JDBC, ODBC-এর মতো কোনো কানেকশন স্থাপন করার প্রয়োজন নেই।

এই উদাহরণে দেখানো হয়েছে Android SQLite-এ NOT NULL কনস্ট্রেইন্ট কীভাবে ব্যবহার করবেন।

স্টেপ ১: নতুন প্রজেক্ট তৈরি করুন

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 = "নাম লিখুন" 
        android:layout_height = "wrap_content" /> 
    <EditText 
        android:id = "@+id/salary" 
        android:layout_width = "match_parent" 
        android:inputType = "numberDecimal" 
        android:hint = "বেতন লিখুন" 
        android:layout_height = "wrap_content" /> 
    <Button 
        android:id = "@+id/save" 
        android:text = "সংরক্ষণ" 
        android:layout_width = "wrap_content" 
        android:layout_height = "wrap_content" /> 
</LinearLayout>

উপরের কোডে নাম এবং বেতনের জন্য দুটি EditText নেওয়া হয়েছে। Save বাটনে ক্লিক করলে ডেটা SQLite ডাটাবেসে সংরক্ষিত হবে।

স্টেপ ৩: 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, "সংরক্ষিত হয়েছে", Toast.LENGTH_LONG).show(); 
                    } else { 
                        Toast.makeText(MainActivity.this, "সংরক্ষিত হয়নি", Toast.LENGTH_LONG).show(); 
                    } 
                } else { 
                    name.setError("নাম লিখুন"); 
                    salary.setError("বেতন লিখুন"); 
                } 
            } 
        }); 
    } 
}

স্টেপ ৪: 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 = "MyDBName"; 
    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 NOT NULL, name text NOT NULL, salary text NOT NULL)" 
        ); 
    } 
    
    @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(); 
        ContentValues contentValues = new ContentValues(); 
        contentValues.put("name", s); 
        contentValues.put("salary", s1); 
        db.insert(CONTACTS_TABLE_NAME, null, contentValues); 
        return true; 
    } 
}

NOT NULL কনস্ট্রেইন্ট ব্যাখ্যা

NOT NULL কনস্ট্রেইন্ট নিশ্চিত করে যে নির্দিষ্ট কলামে কোনো মান অবশ্যই থাকতে হবে (null হতে পারবে না)। টেবিল তৈরির সময় name text NOT NULL এবং salary text NOT NULL লিখে এই কনস্ট্রেইন্ট প্রয়োগ করা হয়েছে। যদি কোনো ফিল্ড খালি রেখে ইনসার্ট করার চেষ্টা করা হয়, তবে SQLite এরর দেখাবে।

অ্যাপ্লিকেশন চালান

আপনার Android ডিভাইস কম্পিউটারের সাথে কানেক্ট করা থাকলে, Android Studio-তে প্রজেক্টের এক্টিভিটি ফাইল খুলুন এবং টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন।

Android SQLite-এ NOT NULL কনস্ট্রেইন্ট কীভাবে ব্যবহার করবেন?

এখন মানগুলো লিখুন এবং বাটনে ক্লিক করুন।

Android SQLite-এ NOT NULL কনস্ট্রেইন্ট কীভাবে ব্যবহার করবেন?

ফলাফল যাচাই করতে Android Studio-তে ডাটাবেস ইন্সপেক্ট করুন।

Android SQLite-এ NOT NULL কনস্ট্রেইন্ট কীভাবে ব্যবহার করবেন?

  1. Android SQLite-এ COUNT() ফাংশন ব্যবহার করার পদ্ধতি

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

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

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