Sunday, July 1, 2012

Persiapan database pada aplikasi taking order berbasis android menggunakan eclipse

Kenapa harus persiapan database? Apa maksudnya? koq ga langsung aja? dan erbagai pertanyaan bakalan langsung muncul bila ente semua adalah programmer desktop kayak ane...

Sebenarnya untuk penjelasan rinci dan lebih masuk akal dari pertanyaan diatas, ane pribadi pun tidak tahu dan tidak bisa menjelaskan nya. Jujur aja, ane masih sangat awam dalam hal programming terlebih android...

Trus, knapa ente brani bikin2 tutor sgala? ya, karna ane pengen aja :hammer Oke... bek tu topik...
Untuk saat ini ane hanya bisa menjawab bahwa untuk membuat aplikasi android yang menggunakan database, sebaiknya menggunakan sebuah class yang bertujuan untuk membantu dalam menangani database...


Kalau begitu, sekarang mari kita buat sebuah class dengan nama "mySqlHelper" dengan code :
package endqr.sales.admin;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;

public class mySqlHelper extends SQLiteOpenHelper{
private static String DB_PATH = "/data/data/endqr.sales.admin/databases/";
private static final String DATABASE_NAME = "dataesa.db";
private static final int DATABASE_VERSION = 1;
private Context myContext;
public mySqlHelper(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
myContext=context;}
public void createDatabase() throws IOException{
if(DataBaseisExist()){}else
{
this.getReadableDatabase();
try
{
copyDataBase();
}
catch (IOException e){
throw new Error("Error copying database");
}}
}
private boolean DataBaseisExist(){
SQLiteDatabase checkDB = null;
try{
String myPath = DB_PATH + DATABASE_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);}
catch(SQLiteException e){
}
if(checkDB !=null){
checkDB.close();
}
if(checkDB !=null) return true; else return false;
}

private void copyDataBase() throws IOException{
InputStream myInput = myContext.getAssets().open(DATABASE_NAME);
String outFileName = DB_PATH + DATABASE_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer,0,length);
}
//clode the streams
myOutput.flush();
myOutput.close();
myInput.close();}
@Override

public void onCreate(SQLiteDatabase db){
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){}}
 Keterangan :
Class ini akan mengkopi sebuah file database yang nanti akan kita buat dan diletakkan pada folder "assets" dengan nama "dataesa.db" ke dalam folder default dari aplikasi android sendiri yaitu "/data/data/NAMA_PACKAGE/databases/" dengan kondisi "database belum ada"

1 comment:

  1. gan, ini dbnya dah ada ya?
    ga bikin baru di sqlite?
    trs bikinnya gmn?

    ReplyDelete

iklan melayang