Sponsored

অ্যান্ড্রয়েড এসেট ফোল্ডার থেকে ডেটাবেজ ব্যবহার করা

0
20

SQLite এর বেশির ভাগ টিউটোরিয়ালই হচ্ছে কিভাবে নতুন ডেটাবেজ তৈরি করে ডেটা রাখা যায়। কিন্তু আমাদের যদি আগে থেকে ডেটাবেজ তৈরি থাকে, যে ডেটাবেজ আমরা ব্যবহার করতে চাই, তখন কি করব?

Android SQLite Asset Helper নামে একটি লাইব্রেরী রয়েছে, তা ব্যবহার করে সহজেই এই কাজটা করতে পারেন।

এখানে আমরা যে স্যাম্পল ডেটাবেজটি ব্যবহার করব, তা গিটহাবে পাবেন। ডেটাবেজটি রাখতে হবে প্রজেক্টের assets ফোল্ডারের ভেতর databases নামক ফোল্ডারে। ডেটাবেজ গ্রাফিক্যালি দেখতে এবং এডিট করতে ব্যবহার করতে পারেন DB Browser for SQLite

ব্যবহার করার জন্য নিচের Dependence টা যুক্ত করে দিব।

dependencies {
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
}

একটা ক্লাস তৈরি করব MyDatabase বা যে কোন কিছু নামে। এটি একটি হেল্পার ক্লাস। যেখানে আমরা SQLiteOpenHelper এর পরিবর্তে SQLiteAssetHelper ক্লাসটি এক্সটেন্ড করেছি। বাকি সব কিছু একই রকম।

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

 

public class MyDatabase extends SQLiteAssetHelper {

    private static final String DATABASE_NAME = "hello.db";
    private static final int DATABASE_VERSION = 1;
    public static final String TABLE_NAME = "name";

    public MyDatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public Cursor getAllData(){

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor res = db.rawQuery("select * from " + TABLE_NAME, null);

        return res;

    }
}

মেইন এক্টিভিটি থেকে ক্লাসটির একটি ইন্সট্যান্স তৈরি করে নিলেই আমরা ডেটাবেজ ব্যবহার করতে পারবঃ

import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    MyDatabase myDB;
    TextView tvData;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvData = (TextView) findViewById(R.id.tvData);
        myDB = new MyDatabase(this);

        Cursor res = myDB.getAllData();

        if(res.getCount() == 0){
            Toast.makeText(MainActivity.this, "No data found", Toast.LENGTH_LONG).show();
            return;
        }else {
            StringBuffer buffer = new StringBuffer();

            while (res.moveToNext()){
                buffer.append("Id: " + res.getString(0) + " - ");
                buffer.append("Name: " + res.getString(1) + "\n");
            }

            tvData.setText(buffer.toString());
        }
    }

}

xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="me.jakir.sqlitedbfromasset.MainActivity">

    <TextView android:id="@+id/tvData" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" />
</RelativeLayout>

এখানে একটি মাত্র মেথড যুক্ত করা হয়েছে। শুধু ডেটা পড়ার জন্য। এ লেখা থেকে বাকি মেথড গুলোও কাজে লাগানো যাবেঃ অ্যান্ড্রয়েড অ্যাপে SQLite ডেটাবেজ ব্যবহার.

সম্পূর্ণ প্রজেক্ট পাওয়া যাবে গিটহাবে। স্যাম্পল ডেটাবেজ সহ। লাইব্রেরী ব্যবহার না করে নিজের মত করে হেল্পার ক্লাস লিখে নিতে চাইলে  Using your own SQLite database in Android applications লেখাটি দেখতে পারেন।

Sponsored
Sponsored
Search
Categories
Read More
Tech
গল্পঃ প্রীতি
প্রীতি বলল, স্যার আপনি দেরি করে এসেছেন। আমি ঘড়ির দিকে তাকাই। দেখি সময় মতই এসেছি। আমি বলি, আমি তো...
By Nettumi 2026-09-30 18:41:40 0 16
Nulled
Smart Courier and Logistic Management Application v1.0 - .Net Project
Smart Courier and Logistic Management Application v1.0 – .Net Project Nulled PHP Script...
By Nettumi 2026-09-18 04:01:15 0 37
Nulled
AZUL IPTV XTREAM (28 Aug 2024) - Multiple Format, Flutter App Mobile & Android TV, Admob Source
AZUL IPTV XTREAM (28 Aug 2024) – Multiple Format, Flutter App Mobile & Android TV,...
By Nettumi 2026-09-17 18:41:18 0 284
Nulled
TravelLab v2.0 - Travel Package & Ticket Booking Platform PHP Script
TravelLab v2.0 – Travel Package & Ticket Booking Platform PHP Script Free Download....
By Nettumi 2026-09-17 18:40:13 0 43
Status
রাত নিয়ে সুন্দর ক্যাপশন: নির্জন রাতের ৫০+ ফটো ক্যাপশন [২০২৬] - উক্তিবাড়ি
সূচিপত্র (Table of Contents) লুকান
By Nettumi 2026-10-03 03:31:24 0 2
Sponsored
Sponsored
Advertisement
Ad starting...
‎ ‎ ‎
Nettumi https://nettumi.com