SQLite 1. Pengenalan SQLite SQLite itu merupakan sebuah Database yang bersifat ACID - compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C . SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp . SQLite memiliki fitur relasional database, hampir sama dengan SQL pada desktop hanya saja SQLite membutuhkan memori yang sedikit. Beberapa produk yang sudah menggunakan yaitu PHP, Firefox, Chrome, iPhone dan Android adalah contoh produk yang menggunakan SQlite. di Browser firefox, Sqlite dipakai untuk menyimpan konfigurasi, bookmark dan history website sedangkan di smartphone android, SQLite dipakai untuk menyimpan contact. SQLite adalah produk public domain. Artinya tidak punya lisensi, anda boleh mengambil binary atau source codenya secara free / GRATIS. Anda boleh membuat software dengan lisensi suka suka anda. Anda boleh mengopensourcekan atau mengkomersialkan itu bebas anda lakukan. Tipe data yang didukung di SQLite : Numeric ( integer , float , double), Text ( Char , varchar , text ) DATETIME BLOB. SQLite mendukung semua platform. Anda bebas memilih OS, mau pakai Windows, Linux, Mac OSX bahkan Android atau iPhone pun bisa.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
SQLite
1. Pengenalan SQLite
SQLite itu merupakan sebuah Database yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.
SQLite memiliki fitur relasional database, hampir sama dengan SQL pada desktop hanya saja SQLite membutuhkan memori yang sedikit.
Beberapa produk yang sudah menggunakan yaitu PHP, Firefox, Chrome, iPhone dan Android adalah contoh produk yang menggunakan SQlite. di Browser firefox, Sqlite dipakai untuk menyimpan konfigurasi, bookmark dan history website sedangkan di smartphone android, SQLite dipakai untuk menyimpan contact.
SQLite adalah produk public domain. Artinya tidak punya lisensi, anda boleh mengambil binary atau source codenya secara free / GRATIS.
Anda boleh membuat software dengan lisensi suka suka anda. Anda boleh mengopensourcekan atau mengkomersialkan itu bebas anda lakukan.
Tipe data yang didukung di SQLite :
Numeric ( integer , float , double), Text ( Char , varchar , text ) DATETIME BLOB.
SQLite mendukung semua platform. Anda bebas memilih OS, mau pakai Windows, Linux, Mac OSX bahkan Android atau iPhone pun bisa.
Tool yang cukup populer adalah SQLite manager. SQLite manager adalah plugin Firefox, sedangkan tool berbasis web adalah SQLiteManager yang dibuat dengan PHP dan bisa menggunakan Navicat.
Ada beberapa cara memahami atau mempelajari SQLite yaintu dengan beberapa tutorial di bawah ini:
Dokumentasi SQLite, Dokumentasi resmi SQLite. Zetcode SQlite tutorial . Tutorial perintah dasar SQLite . Zetcode PHP SQLite tutorial. Tutorial cara membuat program web menggunakan PHP dan SQLite.
Pada kesempatan kali ini saya akan berbagi artikel tentang SQLite di Android. Sebagaimana bahwa SQLite adalah sistem yang opensource yang berkompatible dengan sistem Android juga.
SQLite di AndroidSQLite tersedia pada setiap perangkat Android. Menggunakan SQLite database di Android tidak memerlukan setup database atau administrasi. Anda menentukan SQL untuk bekerja dengan database dan database dikelola secara otomatis untuk Anda.Bekerja dengan database bisa lambat. Oleh karena itu dianjurkan untuk melakukan tugas tersebut di latar belakang, misalnya melalui AsyncTask .Jika aplikasi Anda menciptakan sebuah database database ini disimpan di direktoriDATA/data/APP_NAME/databases/FILENAME . DATA adalah jalan yangEnvironment.getDataDirectory() mengembalikan, APP_NAME adalah nama aplikasi Anda danFILENAME adalah nama yang Anda berikan database selama penciptaan.Environment.getDataDirectory() biasanya kembali kartu SD sebagai lokasi.
Penyedia konten dan berbagi dataSebuah SQLite database pribadi ke aplikasi yang menciptakan itu. Jika Anda ingin berbagi data dengan aplikasi lain Anda dapat menggunakan ContentProvider . Jika data tidak dibagi biasanya lebih mudah untuk bekerja secara langsung dengan database. ContentProviders bukan bagian dari tutorial ini.
2. Arsitektur AndroidPaketPaket android.database berisi semua kelas umum untuk bekerja dengan database.android.database.sqlite berisi kelas SQLite tertentu.
SQLiteOpenHelperUntuk membuat dan meng-upgrade database dalam aplikasi Android Anda Anda biasanya subclassSQLiteOpenHelper . Di kelas ini, Anda perlu mengganti metode onCreate() untuk membuat database danonUpgrade() untuk meng-upgrade database dalam kasus perubahan dalam skema database. Kedua metode menerima SQLiteDatabase objek yang mewakili database.SQLiteOpenHelper menyediakan metode getReadableDatabase() dan getWriteableDatabase()untuk mendapatkan akses ke SQLiteDatabase objek yang memungkinkan akses database baik dalam membaca atau menulis modus.Untuk primary key dari tabel database Anda selalu harus menggunakan identifier _id karena beberapa fungsi Android bergantung pada standar ini.Sebuah praktek terbaik adalah untuk menciptakan per meja kelas terpisah yang menentukan statis onCreate()dan onUpdate() metode. Metode ini kemudian disebut dalam metode yang sesuai SQLiteOpenHelper .Penerapan cara ini Anda SQLiteOpenHelper tidak akan bisa besar bahkan jika Anda memiliki beberapa tabel.
SQLiteDatabaseSQLiteDatabase adalah kelas dasar untuk bekerja dengan SQLite database di Android dan menyediakan metode untuk membuka, query, update dan menutup database. Lebih khusus SQLiteDatabase menyediakaninsert() , update() dan delete() metode. Para execSQL() metode memungkinkan untuk mengeksekusi SQL secara langsung. Objek ContentValues memungkinkan untuk mendefinisikan kunci / nilai untuk insert dan update. Kuncinya adalah kolom dan nilai adalah nilai untuk kolom ini.Query dapat dibuat melalui metode rawQuery() yang menerima SQL atau query() yang menyediakan sebuah antarmuka untuk menentukan data yang dinamis atau SQLiteQueryBuilder .Misalnya untuk menjalankan rawQuery() Anda dapat melakukan hal berikut:
Kursor kursor = getReadableDatabase () rawQuery ("* pilih dari todo mana = _id?", New String [] {id}).;
Metode query() memiliki parameter berikut.
String dbName - Nama tabel untuk mengkompilasi query terhadap int[] columnNames - Sebuah daftar yang kolom untuk kembali. Melewati null akan
mengembalikan semua kolom. String whereClause - Filter untuk pemilihan data tanpa "MANA" klausa, null akan memilih
semua selectionArgs Anda mungkin termasuk s di whereClause, yang akan digantikan oleh nilai-
nilai dari selectionArgs?. String[] groupBy - A filter declaring how to group rows, null will
cause the rows to not be grouped. String[] having - Filter untuk goups, nol berarti tidak ada filter String[] orderBy - row which will be used to order the data, null
means no ordering
Jika semua data harus dipilih, Anda dapat melewati null sebagai klausa mana. Klausul mana ditentukan tanpawhere , misalnya _id=19 and summary=? . Jika beberapa nilai yang diperlukan melalui ? Anda melewatkan mereka dalam array valuesForWhereClause untuk query. Secara umum, jika ada sesuatu yang tidak diperlukan Anda dapat melewati null , misalnya untuk kelompok dengan klausa.Misalnya untuk menjalankan query() Anda dapat melakukan hal berikut:
kembali database.query (DATABASE_TABLE,
new String [] {KEY_ROWID, KEY_CATEGORY, KEY_SUMMARY, KEY_DESCRIPTION},
null, null, null, null, null);
KursorSebuah permintaan selalu mengembalikan Cursor . Kursor mewakili hasil dari query dan pada dasarnya poin selalu satu baris dari database. Dengan cara ini Android dapat buffer hasil efisien karena tidak harus memuat semua data ke dalam memori.Untuk mendapatkan jumlah elemen menggunakan metode getCount() . Untuk beralih di antara baris data individu, Anda dapat menggunakan metode moveToFirst() dan moveToNext() . Melalui metodeisAfterLast() Anda dapat memeriksa apakah masih ada beberapa data.Kursor dapat langsung digunakan melalui SimpleCursorAdapter di ListViews .
3. Antarmuka baris perintah untuk SQLiteHal ini dimungkinkan untuk mengakses database SQLite pada emulator atau perangkat berakar melalui baris perintah. Untuk menggunakan ini adb shell untuk menghubungkan ke perangkat dan perintah "sqlite3" untuk menghubungkan ke database yang.
Contoh pembuatan aplikasi program contact pada Android menggunakan SQLite
Pada contoh penggunaan sqlite ini saya akan membuat sebuah aplikasi android untuk menyimpan “Contact”, data yang saya simpan adalahNama dan Nomer Telepon. Untuk langkah pertama saya mempersiapkan sebuah class entity untuk Contact. Berikut ini classnya..
/*
* (c) 2013
* @author Pratama Nur Wijaya
*
* Project : SQLiteTutorials
* Filename : Contact.java
* Creation Date : Feb 23, 2013 time : 9:17:15 PM
*
*/
package com.example.sqlitetutorials;
public class Contact
{
private int id;
private String name;
private String telp;
public Contact()
{
// TODO Auto-generated constructor stub
}
public Contact(String name, String telp)
{
super();
this.name = name;
this.telp = telp;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getTelp()
{
return telp;
}
public void setTelp(String telp)
{
this.telp = telp;
}
}
class ini hanyalah berisi nama table yang akan ada didatabase kita nanti, beserta method getter dan setter.
Selanjut adalah mepersiapkan class untuk menangani proses CRUD(Create, Read, Update, Delete). Disini saya membuat sebuah class yang saya berinama DBAdapter, berikut ini class yang saya maksud.
/*
* (c) 2013
* @author Pratama Nur Wijaya
*
* Project : SQLiteTutorials
* Filename : ContactDBHelper.java
* Creation Date : Feb 23, 2013 time : 9:18:36 PM
*
*/
package com.example.sqlitetutorials;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DBAdapter
{
private static final String DB_NAME = "contact_db";
private static final int DB_VER = 1;
public static final String TABLE_NAME = "contact";
public static final String COL_ID = "_id";
public static final String COL_NAME = "name";
public static final String COL_TELP = "telp";
private static final String TAG = "ContactDBAdapter";
private DatabaseHelper dbHelper;
private SQLiteDatabase db;
private static final String DB_CREATE = "create table contact (_id integer primary key, name text not null, telp text not null);";
private final Context context;
private static class DatabaseHelper extends SQLiteOpenHelper
{
public DatabaseHelper(Context context)
{
// TODO Auto-generated constructor stub
super(context, DB_NAME, null, DB_VER);
}
@Override
public void onCreate(SQLiteDatabase db)
{
// TODO Auto-generated method stub
db.execSQL(DB_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
public void onItemClick(AdapterView<?> arg0, View v, int pos, long id)
{
// TODO Auto-generated method stub
Bundle bundle = new Bundle();
bundle.putLong(KEY_ID, id);
Intent intent = new Intent(MainActivity.this, EditActivity.class);
intent.putExtras(bundle);
db.close();
startActivity(intent);
}
}
di file mainActivity saya menggunakan SimpleCursorAdapter untuk menampilkan data yang ada kedalam listview yang sudah saya tambahkan di file xml nya. Kemudian mainActivity ini juga memiliki menu option yang akan muncul ketika user mengklik tombol menu yang ada di handset, jika user menekan tombol menu, maka akan muncul menu Insert dan activity berpindah ke AddContact,