এন্ড্রয়েড ডেভেলপমেন্ট [পর্ব ২৭] :: ডাটাবেস SQLite এবং প্রোজেক্ট এর সেটআপ-৪

আজকের পর্বে আমরা ডাটাবেস SQLite এবং প্রোজেক্ট এর সেটআপ-৪ সম্পর্কে আলোচনা করব। এই পর্বে আমরা ডাটাবেসে Contact ফর্ম এ সাবমিট করা ডাটাগুলো ডাটাবেসে ইনপুট করব এবং সেখান থেকে ডাটাগুলো retrieve করব। প্রথমেই নতুন একটি জাভা ক্লাস ফাইল নেই DatabaseInsert নামে। DatabaseInsert ক্লাস এ SQLiteDatabase এ অবজেক্ট ডিক্লিয়ার করি database নামে। DatabaseContents ক্লাস দিয়ে আরেকটি অবজেক্ট ডিক্লিয়ার করি datacontent নামে।

তেমনিভাবে DatabaseInsert দিয়ে একটি constructor তৈরি করি যার মধ্য দিয়ে আমরা DatabaseInsert এর Context গুলি DatabaseContents এ সেন্ড করব।তারপর open ও close নামে দুইটা মেথড তৈরি করি। যেখানে open মেথডে getWritableDatabase(); এর মাধ্যমে ডাটা write করার অনুমতি নেয়া হচ্ছে।

তারপর ডাটা ইনসার্ট করার জন্য আমরা আরেকটি মেথড নিব insertContact নামে এবং মেথডটি হবে long  টাইপের। এই মেথডের ভিতরে ContentValues ক্লাস দিয়ে values অবজেক্টটি ডিক্লিয়ার করে দেই।এখানে ContentValues ক্লাস এর কাজ হচ্ছে ডাটা সেভ করে রাখার জন্য সহায়তা করা।তারপর আমাদের values এর মধ্যে আমাদের contact ফর্ম এর মানগুলি ইনসার্ট করার জন্য values.put(Key,value) এভাবে মানগুলিইনসার্ট করে দেই। এবং সবশেষে আমদের database অবজেক্ট দিয়ে ইনসার্ট করি আমদের CONTACT টেবিলকে এবং তা return value হিসেবে সেট করে দেই।

package com.code.androiddatabase;

import java.util.ArrayList;

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

public class DatabaseInsert {

SQLiteDatabase database;

DatabaseContents datacontent;

public DatabaseInsert (Context context)

{
datacontent = new DatabaseContents(context);
}

public void open()
{
database = datacontent.getWritableDatabase();
}


public void close()

{
database.close();
}


public long insertContact(String name, String educat, String email, String mobile){

ContentValues values = new ContentValues();


values.put(DatabaseContents.CONTACT_NAME, name);

values.put(DatabaseContents.CONTACT_EDUCAT, educat);

values.put(DatabaseContents.CONTACT_EMAIL, email);

values.put(DatabaseContents.CONTACT_MOBILE, mobile);

long inserted = database.insert(DatabaseContents.CONTACT, null , values);

return inserted;
}


public ArrayList<Contacts> getContacts() {

ArrayList<Contacts> contacts = new ArrayList<Contacts>();

String[] columns =

{

DatabaseContents.CONTACT_ID,

DatabaseContents.CONTACT_NAME,

DatabaseContents.CONTACT_EDUCAT,

DatabaseContents.CONTACT_EMAIL,

DatabaseContents.CONTACT_MOBILE

};


Cursor cursor =
database.query(DatabaseContents.CONTACT, columns, null, null, null, null, null);

if (cursor.getCount() > 0)
{
cursor.moveToFirst();

for (int i = 0; i < cursor.getCount(); i++) {

String id = cursor.getString
(cursor.getColumnIndex(DatabaseContents.CONTACT_ID));

String name = cursor.getString
(cursor.getColumnIndex(DatabaseContents.CONTACT_NAME));

String educat = cursor.getString
(cursor.getColumnIndex(DatabaseContents.CONTACT_EDUCAT));

String email = cursor.getString
(cursor.getColumnIndex(DatabaseContents.CONTACT_EMAIL));

String mobile = cursor.getString
(cursor.getColumnIndex(DatabaseContents.CONTACT_MOBILE));


Contacts c = new Contacts(name, educat, email, mobile);


contacts.add(c);


cursor.moveToNext();

}

}

cursor.close();

return contacts;
}




}


তারপর আমদের ডাটাবেসের query করার জন্য ArrayList দিয়ে উপরের মত করে getContacts দিয়ে একটি মেথড তৈরি করি। এখানে String এর মধ্যে ডাটাবেসের মানগুলি সেট করে দেয়া হয়েছে। তারপর Cursor ইন্টারফেস কে ব্যবহার করে databasequery তৈরি করা হয়েছে। query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit) এখানে table এর মধ্যে Database table এর নাম এবং columns এর মধ্যে ডাটাবেসেরসব মানগুলির String value, columns সেট করে দেই। এবং নতুন ডাটা value ইনসার্ট হয়ে index সেট এবং পজিশান increment এর জন্য একটি ফর লুপ সেট করে দেই।

এবং সবশেষে cursor.close(); দিয়ে মেথডটি ক্লোজ করে এবং রিটার্ন value হিসেবে contacts দিয়ে দেই।

এইছিল আজকের ডাটাবেস SQLite এবং প্রোজেক্ট এর সেটআপ-৪ সম্পর্কে আলোচনা।

Previous
Next Post »

পোস্ট সম্পর্কিত সমস্যার জন্য মন্তব্য দিন।ডাউনলোড লিঙ্ক এ সমস্যা জন্য ইনবক্স করুন Aimzworld007
ConversionConversion EmoticonEmoticon

Thanks for your comment