Dalam sistem android memiliki beberapa teknik untuk melakukan penyimpanan data. Teknik yang umum digunakan adalah sebagai berikut :
- Shared Prefences yaitu menyimpan data beberapa nilai(value) dalam bentuk groups key yang dikenal dengan prefences.
- Files yaitu menyimpan data dalam file, dapat berupa menulis ke file atau membaca dari file.
- SQLite Databases, yaitu menyimpan data dalam bentuk Databases.
- Content Providers, yaitu menyimpan data dalam bentuk content providers service.
Aplikasi database1
Pada aplikasi database1 ini, akan kita coba membuat database,tabel serta menyimpan data ke dalam database. Buatlah project baru seperti ketentuan berikut :
Project Name : database1
Buitl Target : Android 2.3
Application name : database1
Package name : com.wilis.database1
Activity : database1
Min SDK : 9
Terdiri dari dua buah file java yaitu DBAdapter.java yang menghandle masalah SQLite beserta fungsi-fungsi yang dibutuhkan seperti struktur dan sekema database dan database1.java yang digunakan untuk melakukan pengiriman data yang akan ditambahkan ke database, membuka, mengedit, memanipulasi database.
DBAdapter.java
package com.wilis.database1; 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 { public static final String KEY_ROWID = "_id"; public static final String KEY_ISBN = "isbn"; public static final String KEY_TITLE = "title"; public static final String KEY_PUBLISHER = "publisher"; private static final String TAG = "DBAdapter"; private static final String DATABASE_NAME = "books"; private static final String DATABASE_TABLE = "titles"; private static final int DATABASE_VERSION = 1; private static final String DATABASE_CREATE = "create table titles (_id integer primary key autoincrement, " + "isbn text not null, title text not null, " + "publisher text not null);"; private final Context context; private DatabaseHelper DBHelper; private SQLiteDatabase db; public DBAdapter(Context ctx) { this.context = ctx; DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS titles"); onCreate(db); } } //---opens the database--- public DBAdapter open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; } //---closes the database--- public void close() { DBHelper.close(); } //---insert a title into the database--- public long insertTitle(String isbn, String title, String publisher) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_ISBN, isbn); initialValues.put(KEY_TITLE, title); initialValues.put(KEY_PUBLISHER, publisher); return db.insert(DATABASE_TABLE, null, initialValues); } //---deletes a particular title--- public boolean deleteTitle(long rowId) { return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0; } //---retrieves all the titles--- public Cursor getAllTitles() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER}, null, null, null, null, null); } //---retrieves a particular title--- public Cursor getTitle(long rowId) throws SQLException { Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER }, KEY_ROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } //---updates a title--- public boolean updateTitle(long rowId, String isbn, String title, String publisher) { ContentValues args = new ContentValues(); args.put(KEY_ISBN, isbn); args.put(KEY_TITLE, title); args.put(KEY_PUBLISHER, publisher); return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0; } }
|
Database1.java
package com.wilis.database1; import android.app.Activity; import android.os.Bundle; public class database1 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DBAdapter db = new DBAdapter(this); //---add 3 titles--- db.open(); long id; id = db.insertTitle( "1234512345", "Android Programmer's Reference", "Washington Press"); id = db.insertTitle( "5432112345", "Linux Programming", "Bandung Press"); id = db.insertTitle( "0987654321", "Android Devlopment Life Cycle", "Hongkong Press"); db.close(); } }
|
Selanjutnya kita akan coba buat input form untuk memasukkan data ke dalam database,
persiapkan form seperti berikut :
customerjava.com package com.wilis.databaseapp; public class Customer { long id; String name; String address; String phone; boolean complete; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public boolean isComplete() { return complete; } public void setComplete(boolean complete) { this.complete = complete; } // ------------------------------------------- public void toggleComplete() { complete = !complete; } } |
karena masih banyak file javanya sebaiknya anda donwload sourcode nya aja langsung
Download Full Sourcode DatabaseApps
Jalankan aplikasi setelah melakukan input akan ditampilkan seperti gambar berikut :
Demikian,
ini adalah contoh aplikasi simple mengenai SQLite, walaupun ini cerita jadul, tapi tetap menarik untuk dipahami oleh developer android.
sumber : http://nsafaat.wordpress.com/2011/11/16/tuturial-databaseaps-sqlite/
This comment has been removed by a blog administrator.
ReplyDelete