Android SQLite Tutorial

SQLite adalah database relasional open-source yang digunakan untuk melakukan operasi database pada perangkat android seperti menyimpan, memanipulasi atau mengambil data persisten dari database.
Hal ini tertanam di android by default. Jadi, tidak perlu melakukan pengaturan database atau tugas administrasi.

Di sini, kita akan melihat contoh sqlite untuk menyimpan dan mengambil data. Data ditampilkan di logcat. Untuk menampilkan data pada pemintal atau listview, pindah ke halaman berikutnya.

Kelas SQLiteOpenHelper menyediakan fungsionalitas untuk menggunakan database SQLite.

Kelas SQLiteOpenHelper

Kelas android.database.sqlite.SQLiteOpenHelper digunakan untuk pembuatan database dan manajemen versi. Untuk melakukan operasi database, Anda harus menyediakan implementasi onCreate() dan onUpgrade() metode SQLiteOpenHelper kelas.

Konstruktor kelas SQLiteOpenHelper

Ada dua Constructor kelas SQLiteOpenHelper.

Constructor Deskripsi
SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) membuat objek untuk membuat, membuka dan mengelola database.
SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) membuat objek untuk membuat, membuka dan mengelola database. Ini menentukan kesalahan handler.


Metode kelas SQLiteOpenHelper

Ada banyak metode di kelas SQLiteOpenHelper. Beberapa dari mereka adalah sebagai berikut :

Metode Deskripsi
public abstract void onCreate(SQLiteDatabase db) disebut hanya sekali ketika database dibuat untuk pertama kalinya.
public abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) dipanggil ketika database perlu ditingkatkan.
public synchronized void close () menutup objek database.
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) dipanggil ketika database perlu diturunkan.


SQLiteDatabase class

Ini berisi metode yang akan dilakukan pada database sqlite seperti membuat, memperbarui, menghapus, memilih dll.

Metode SQLiteDatabase class

Ada banyak metode di kelas SQLiteDatabase. Beberapa dari mereka adalah sebagai berikut :

Metode Deskripsi
void execSQL(String sql) mengeksekusi query sql tidak memilih query.
long insert(String table, String nullColumnHack, ContentValues values) menyisipkan rekaman pada database. Tabel menentukan nama tabel, nullColumnHack tidak mengizinkan nilai null sepenuhnya. Jika argumen kedua null, android akan menyimpan nilai null jika nilai kosong. Argumen ketiga menentukan nilai yang akan disimpan.
int update(String table, ContentValues values, String whereClause, String[] whereArgs) memperbarui baris.
Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) mengembalikan kursor ke resultset.


Contoh database SQLite android

Mari kita lihat contoh sederhana dari database sqlite android.

File : Contact.java

package example.android.com.sqlitetutorial;  
 
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;  
    }  
}  


Sekarang, mari kita membuat kelas database handler yang memperluas kelas SQLiteOpenHelper dan menyediakan implementasi metodenya.

File : DatabaseHandler.java

package example.android.com.sqlitetutorial;  
 
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();  
    }  
 
}  


File : MainActivity.java

package example.android.com.sqlitetutorial;  
 
import android.support.v7.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);  
        }  
    }  
}  


Output :

Android SQLite Tutorial


Bagaimana cara melihat data yang disimpan dalam sqlite di android studio?

Ikuti langkah-langkah berikut untuk melihat database dan data yang disimpan dalam sqlite android :

  • Buka File Explorer.
  • Buka direktori data di dalam direktori data.
  • Cari nama paket aplikasi Anda.
  • Di dalam paket aplikasi Anda pergi ke database di mana Anda akan menemukan database Anda (contactsManager).
  • Simpan database Anda (contactsManager) di mana pun Anda suka.
  • Unduh plugin atau alat browser SqLite (dalam kasus saya DB Browser untuk SQLite).
  • Luncurkan DB Browser untuk SQLite dan buka database Anda (contactsManager).
  • Buka Telusuri Data -> pilih tabel (kontak) Anda, Anda akan melihat data yang disimpan.


Output :

Android SQLite Tutorial


Berlangganan update artikel terbaru via email:

0 Response to "Android SQLite Tutorial"

Posting Komentar

Iklan Atas Artikel

Iklan Bawah Artikel