25 Program to demonstrate SQLite Database in Android Studio

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.blogspot.codingatharva.databaseexample">



    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".DisplayContact"></activity>

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />



                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>



</manifest>


Contact.java:
package com.blogspot.codingatharva.databaseexample;



public class Contact {

    int _id;

    String _name;

    String _phone_number;



    public Contact() {

    }



    public Contact(int id, String name, String _phone_number) {

        this._id = id;

        this._name = name;

        this._phone_number = _phone_number;

    }



    public Contact(String name, String _phone_number) {

        this._name = name;

        this._phone_number = _phone_number;

    }



    public int getID() {

        return this._id;

    }



    public void setID(int id) {

        this._id = id;

    }



    public String getName() {

        return this._name;

    }



    public void setName(String name) {

        this._name = name;

    }



    public String getPhoneNumber() {

        return this._phone_number;

    }



    public void setPhoneNumber(String phone_number) {

        this._phone_number = phone_number;

    }

}



DatabaseHandler.java:
package com.blogspot.codingatharva.databaseexample;



import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;



import java.util.ArrayList;

import java.util.List;





public class DatabaseHandler extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_NAME = "contactsManager";

    private static final String TABLE_CONTACTS = "contacts";

    private static final String KEY_ID = "id";

    private static final String KEY_NAME = "name";

    private static final String KEY_PH_NO = "phone_number";



    public DatabaseHandler(Context context) {

        super(context, DATABASE_NAME, null, DATABASE_VERSION);

        //3rd argument to be passed is CursorFactory instance

    }



    // Creating Tables

    @Override

    public void onCreate(SQLiteDatabase db) {

        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("

                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"

                + KEY_PH_NO + " TEXT" + ")";

        db.execSQL(CREATE_CONTACTS_TABLE);

    }



    // Upgrading database

    @Override

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        // Drop older table if existed

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);



        // Create tables again

        onCreate(db);

    }



    // code to add the new contact

    void addContact(Contact contact) {

        SQLiteDatabase db = this.getWritableDatabase();



        ContentValues values = new ContentValues();

        values.put(KEY_NAME, contact.getName()); // Contact Name

        values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone



        // Inserting Row

        db.insert(TABLE_CONTACTS, null, values);

        //2nd argument is String containing nullColumnHack

        db.close(); // Closing database connection

    }



    // code to get the single contact

    Contact getContact(int id) {

        SQLiteDatabase db = this.getReadableDatabase();



        Cursor cursor = db.query(TABLE_CONTACTS, new String[]{KEY_ID,

                        KEY_NAME, KEY_PH_NO}, KEY_ID + "=?",

                new String[]{String.valueOf(id)}, null, null, null, null);

        if (cursor != null)

            cursor.moveToFirst();



        Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),

                cursor.getString(1), cursor.getString(2));

        // return contact

        return contact;

    }



    // code to get all contacts in a list view

    public List<Contact> getAllContacts() {

        List<Contact> contactList = new ArrayList<Contact>();

        // Select All Query

        String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;



        SQLiteDatabase db = this.getWritableDatabase();

        Cursor cursor = db.rawQuery(selectQuery, null);



        // looping through all rows and adding to list

        if (cursor.moveToFirst()) {

            do {

                Contact contact = new Contact();

                contact.setID(Integer.parseInt(cursor.getString(0)));

                contact.setName(cursor.getString(1));

                contact.setPhoneNumber(cursor.getString(2));

                // Adding contact to list

                contactList.add(contact);

            } while (cursor.moveToNext());

        }



        // return contact list

        return contactList;

    }



    // code to update the single contact

    public int updateContact(Contact contact) {

        SQLiteDatabase db = this.getWritableDatabase();



        ContentValues values = new ContentValues();

        values.put(KEY_NAME, contact.getName());

        values.put(KEY_PH_NO, contact.getPhoneNumber());



        // updating row

        return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",

                new String[]{String.valueOf(contact.getID())});

    }



    // Deleting single contact

    public void deleteContact(Contact contact) {

        SQLiteDatabase db = this.getWritableDatabase();

        db.delete(TABLE_CONTACTS, KEY_ID + " = ?",

                new String[]{String.valueOf(contact.getID())});

        db.close();

    }



    // Getting contacts Count

    public int getContactsCount() {

        String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;

        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.rawQuery(countQuery, null);

        cursor.close();



        // return count

        return cursor.getCount();

    }



}


MainActivity.java:
package com.blogspot.codingatharva.databaseexample;



import androidx.appcompat.app.AppCompatActivity;



import android.os.Bundle;

import android.util.Log;



import java.util.List;



public class MainActivity extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        DatabaseHandler db = new DatabaseHandler(this);



        // Inserting Contacts

        Log.d("Insert: ", "Inserting ..");

        db.addContact(new Contact("Ravi", "9100000000"));

        db.addContact(new Contact("Srinivas", "9199999999"));

        db.addContact(new Contact("Tommy", "9522222222"));

        db.addContact(new Contact("Karthik", "9533333333"));



        // Reading all contacts

        Log.d("Reading: ", "Reading all contacts..");

        List<Contact> contacts = db.getAllContacts();



        for (Contact cn : contacts) {

            String log = "Id: " + cn.getID() + " ,Name: " + cn.getName() + " ,Phone: " +

                    cn.getPhoneNumber();

            // Writing Contacts to log

            Log.d("Name: ", log);

        }

    }



}


activity_main.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:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingLeft="50dp"

    android:paddingRight="50dp"

    android:paddingTop="50dp"

    android:paddingBottom="50dp" tools:context=".MainActivity">



    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/textView"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:textSize="30dp"

        android:text="Data Base" />





</RelativeLayout>


How to View SQLite Database in Android Studio?
How to View SQLite Database in Android Studio?


Output:

SQLite Database in Android Studio



Previous
Next Post »