Спонсоры

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

0
21

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 লেখাটি দেখতে পারেন।

Спонсоры
Поиск
Категории
Больше
Tech
এন্ড্রয়েড অ্যাপ আপডেট করার নিয়ম (এবং উপকারিতা) - Banglatech24.com
অ্যান্ড্রয়েড ফোনের অ্যাপ আপডেট করা বেশ সহজ একটি কাজ। খুব অল্প সময়ের মধ্যে এন্ড্রয়েড অ্যাপ...
От Nettumi 2026-09-25 10:11:58 0 36
Nulled
ViserShare v1.0 Nulled - Micro Share Trading and Prediction Platform | Share Market Script - Nulled PHP Scripts
ViserShare v1.0 Nulled – Micro Share Trading and Prediction Platform | Share Market...
От Nettumi 2026-09-17 17:46:06 0 88
Tech
সি প্রোগ্রামিং - getchar & putchar
এর আগ  পর্যন্ত আমরা কিছু ডেটা কনসোলে দেখিয়েছি। যার জন্য ব্যবহার করেছি printf। printf ছাড়াও...
От Nettumi 2026-09-30 18:43:50 0 6
Nulled
firezy 2022 Update - Multipurpose WooCommerce Theme Free
firezy 2022 Update – Multipurpose WooCommerce Theme Free Download. Firezy is WordPress...
От Nettumi 2026-09-18 03:55:29 0 90
Nulled
RAM Cleaner ও Battery Saver অ্যাপ আসলে কী করে? আসল সত্য | Techtunes | টেকটিউনস
বিজ্ঞানের আশ্চর্যতম আবিষ্কার, সর্বাধুনিক প্রযুক্তি “Virtual Reality” – চলুন...
От Nettumi 2026-09-21 05:23:14 0 49
Спонсоры
‎ ‎ ‎
Nettumi https://nettumi.com