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

অ্যান্ড্রয়েড SQLite-এ SELECT কমান্ডে স্ট্রিং অ্যাপেন্ড করা

এই উদাহরণে দেখানো হয়েছে কিভাবে SQLite SELECT কোয়েরিতে স্ট্রিং কনক্যাটেনেশন (append) করে কাস্টোম আউটপুট ফরম্যাট করা যায়।

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

স্টেপ ২: res/layout/activity_main.xml

(স্ট্যান্ডার্ড লেআউট: নাম, স্যালারি ইনপুট, Save/Refresh/Update/Delete বাটন, ListView)

স্টেপ ৩: src/MainActivity.java

(স্ট্যান্ডার্ড MainActivity, DatabaseHelper ব্যবহার করে CRUD অপারেশন)

স্টেপ ৪: src/DatabaseHelper.java - কী পরিবর্তন


package com.example.andy.myapplication;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import java.io.IOException;
import java.util.ArrayList;

class DatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "salaryDatabase9";
    public static final String CONTACTS_TABLE_NAME = "SalaryDetails";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 2); // ভার্শন 2
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        try {
            db.execSQL(
                "create table " + CONTACTS_TABLE_NAME + 
                "(id INTEGER PRIMARY KEY, name text, salary float, datetime default current_timestamp)"
            );
        } catch (SQLiteException e) { /* error handling */ }
    }

    @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.replace(CONTACTS_TABLE_NAME, null, contentValues);
        return true;
    }

    // কী পরিবর্তন: SELECT-এ 'Salary is :' স্ট্রিং অ্যাপেন্ড
    public ArrayList getAllCotacts() {
        SQLiteDatabase db = this.getReadableDatabase();
        ArrayList<String> array_list = new ArrayList<String>();
        
        // || অপারেটর দিয়ে স্ট্রিং কনক্যাটেনেশন, 'Salary is :' লিটার্যাল যোগ
        Cursor res = db.rawQuery(
            "select (id ||' : '||name || ' : ' || 'Salary is :'|| salary || ' : '|| datetime) as fullname from " 
            + CONTACTS_TABLE_NAME, null
        );
        
        res.moveToFirst();
        while (res.isAfterLast() == false) {
            if ((res != null) && (res.getCount() > 0))
                array_list.add(res.getString(res.getColumnIndex("fullname")));
            res.moveToNext();
        }
        return array_list;
    }

    public boolean update(String s, String s1) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL("UPDATE " + CONTACTS_TABLE_NAME + " SET name = " + "'" + s + "', " + "salary = " + "'" + s1 + "'");
        return true;
    }

    public boolean delete() {
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL("DELETE from " + CONTACTS_TABLE_NAME);
        return true;
    }
}

SQLite স্ট্রিং কনক্যাটেনেশন

  • SQLite-এ || অপারেটর ব্যবহার করে স্ট্রিং কনক্যাটেনেট করা হয়।
  • 'Salary is :'|| salary → "Salary is : 5000" টাইপ আউটপুট দেবে।
  • এটি SQL-এই ফরম্যাটিং করে, অ্যাপ লেয়ারে স্ট্রিং ম্যানিপুলেশন দরকার নেই।

রান করা

অ্যান্ড্রয়েড ডিভাইসে রান করুন। ListView-এ প্রতিটি রোতে "Salary is : <মান>" দেখাবে।

অন্যান্য উপযোগী SQLite স্ট্রিং ফাংশন

ফাংশন ব্যাখ্যা উদাহরণ
|| কনক্যাটেনেশন 'Hello ' || 'World' → 'Hello World'
substr(X, Y, Z) সাবস্ট্রিং substr('Hello', 2, 3) → 'ell'
upper(X) / lower(X) আপার/লোয়ার কেস upper('hi') → 'HI'
trim(X) ট্রিম স্পেস trim(' hi ') → 'hi'
printf('%05d', 42) ফরম্যাটেড আউটপুট printf('%05d', 42) → '00042'
  1. অ্যান্ড্রয়েড SQLite-এ জুলিয়ান ডে (Julian Day) প্রিন্ট করার পদ্ধতি

  2. অ্যান্ড্রয়েড SQLite-এ time() ফাংশন লোকাল টাইমসহ ব্যবহার

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

  4. অ্যান্ড্রয়েড SQLite-এ sqlite_version() ফাংশন ব্যবহার