cara menggunakan sqlite android studio. cara membuat database di sqlite. sqlite android.
sqlite database example. dari sekian banyak pembuat database mungkin sqlite termasuk yang rumit, padahal tampilannya sederhana dan jika seorang programmer ini bukanlah hal yang rumit. nah mari kita belajar sedikit cara menggunakan sqlite ini.
SQLiteOpenHelper
Kelas android.database.sqlite.SQLiteOpenHelper digunakan
untuk pembuatan database dan manajemen versi. Untuk melakukan operasi database
apa pun, Sobat harus menyediakan implementasi metode onCreate () dan onUpgrade
() dari kelas SQLiteOpenHelper.
Konstruktor kelas SQLiteOpenHelper
Ada dua konstruktor kelas SQLiteOpenHelper.
konstruksi
|
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 penanganan
kesalahan.
|
Metode kelas SQLiteOpenHelper
Ada banyak metode di kelas SQLiteOpenHelper. Beberapa
diantaranya adalah sebagai berikut:
Metode
|
Deskripsi
|
public
abstract void onCreate(SQLiteDatabase db)
|
hanya
sekali ketika database dibuat untuk pertama kalinya.
|
public
abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
|
Saat database
butuh peningkatan
|
public
synchronized void close ()
|
Menutup
objek database
|
public
void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion)
|
Saat database
perlu penurunan.
|
Contoh database SQLite android
Mari kita lihat contoh sederhana dari database sqlite
android.
File:
Contact.java
package example.javatpoint.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;
}
}
file:
DatabaseHandler.java
Sekarang, mari buat kelas pengendali database yang
memperluas kelas SQLiteOpenHelper dan menyediakan implementasi metodenya.
package example.javatpoint.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.javatpoint.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);
}
}
Hasil
Setidaknya begitulah
cara menggunakan sqlite di aplikasi mobile ataupun windows, cukup ribet tapi jika kalian pelajari dan dalami maka
siapa tau kalian bisa membuat program sendiri. Jangan lupa sqlite ini hanya
untuk membuat database saja.
source: javatpoint.com