INTRODUCTION TO ANDROID MOBILE APP DEVELOPMENT MUHAMMAD BAGIR., MTI
MATERI Pengenalan SQLite SQLite Open Helper Fungsi-fungsoi SQLite
SQLite Database Browser SQLite Database
SQLite Database(cont..) Used as usual database, usually to store small data. (For larger data, it s encouraged to use web service). The SQLite Database file will be created the first time application started and the database can be upgraded for further use SQLite Data type: Text Numeric BLOB Integer primary key
SQLiteOpenHelper public class HelloSQLite extends SQLiteOpenHelper{ public static String dbname = "test.sqlite"; public static int dbversion = 1; public HelloSQLite(Context context){ super(context, dbname, null, dbversion); @Override public void oncreate(sqlitedatabase db) { // TODO Auto-generated method stub @Override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { // TODO Auto-generated method stub
For create a table, use usual SQL Sintax: String sql = create table <table_name> (<column_name1> <column_type1>, <column_name2 <column_type2>,...... ) ; db.execsql(sql); For inserting a row into a table: ContentValues initialvalues = new ContentValues(); initialvalues.put(<column_name1>, <value1>'); initialvalues.put(<column_name2>, <value2>'); db.insert(<table_name>, null, initialvalues); For deleting row from a table: String sql = DELETE from <table_name> WHERE <condition> ; db.execsql(sql);
MEMBUAT OBJEK DAN MEMASUKKAN DATA Deklarasikan Nama Database, Context dan Version dengan public modifier static pada field static String dbname="contohdb"; static CursorFactory factory; static int dbversion=1; super(context, dbname, factory, dbversion); Syntax membuat tabel pada metode oncreate: String tabelartist = "CREATE TABLE data_artist" +"(IDS INTEGER PRIMARY KEY," + "ARTIST_NAME TEXT)"; dbobject.execsql(tabelartist); Sebelum dapat memasukkan data ke tabel, buatlah class model setter getter untuk proses data tabel artist Syntax memasukkan data ke tabel: public void addartist(artist art) { SQLiteDatabase db = this.getwritabledatabase(); ContentValues values = new ContentValues(); values.put(kolom2, art.getartists()); db.insert(namatabel, null, values); db.close(); Panggil dari Activity dengan : dt.addartist(new Artist(myEditText.getText().toString()));
Selecting a table in SQLite Database return a Cursor, which can be used to fetching the data for later use. For selecting a SQLiteDatabase table in java: Cursor cursor = db.query(<table_name>, new String[]{<column1>, <column2>, <where_clause>, <selectionargs>, <groupby>, <having>, <orderby>); For fetching the result: while(cursor.movetonext()){ cursor.getstring(column_index1); cursor.getstring(column_index2);...
MENAMPILKAN DATA DARI DATABASE Metode untuk menampilkan data public List<Artist> getartist() { List<Artist> artlist = new ArrayList<Artist>(); String kueriartis = "Select * from "+namatabel; SQLiteDatabase db = this.getwritabledatabase(); Cursor cursor = db.rawquery(kueriartis, null); //memulai proses pengambilan data dan melakukan looping if (cursor.movetofirst()) { do { Artist art = new Artist(); //art.(cursor.getstring(2)); art.setartists(cursor.getstring(1)); artlist.add(art); while(cursor.movetonext()); return artlist; Memanggil metode dan menambahkan ke ListView List<Artist> art = dt.getartist(); for(artist obj: art) { todo.add(0,obj.getartists().tostring());
Note: Before starting any database action, the database must be opened, and closed after finished. dbhelper.getreadabledatabase(); Or dbhelper.getwriteabledatabase(); db.close(); Database will be stored in: /data/data/your_package/databases/database_name Other way to use SQLite Database: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-androidapplications/
MENAMBAHKAN PROSES GET ID ARTIS Untuk Mendapatkan ID Artis dari tabel bagi kebutuhan proses update maka harus dilakukan penambahan adapter yang dapat diget saat item diklik Pada Field ArrayList<Integer> idartis; ArrayAdapter<Integer> bb; Pada Content View idartis = new ArrayList<Integer>(); bb = new ArrayAdapter<Integer>(this,android.R.layout.simple_selectable_list_item,idArtis); mylistview.setadapter(bb); Pada Loop idartis.add(0, obj.getidart());
MENAMBAHKAN PROSES UPDATE Metode untuk update tabel Artis public void updateartist(artist art) { SQLiteDatabase db = this.getwritabledatabase(); ContentValues values = new ContentValues(); values.put(kolom2, art.getartists()); String artis=integer.tostring(art.getidart ());// updating row db.update(namatabel, values, kolom1 + "=?", new String[] { String.valueOf(artis) ); Metode pada Activity untuk memanggil proses update public void updatedata(view v) { dt.updateartist(new Artist(myEditText.getText().toStrin g(),idart)); aa.clear(); aa.notifydatasetchanged(); art = dt.getartist(); for(artist obj: art) { String dataartists=obj.getartists().tostring(); idartis.add(0, obj.getidart()); todo.add(0,dataartists); //todo.add(0,integer.tostring(obj.geti dart())); myedittext.settext("");
PROSES DELETE Untuk metode Proses delete tambahkan metode pada dao sbb : public void deleteartist(artist arts) { SQLiteDatabase db = this.getwritabledatabase(); String idartis=integer.tostring(arts.getidart()); // updating row db.delete(namatabel, kolom1 + "=?", new String[] { String.valueOf(idArtis) );