Hello,
Since last few days, I have been working with android and I am very excited about it. This is my first blog on Android and many more is to come.
Normally Sqlite database is used with Android application. So this blog is about how you can use existing Sqlite database in Android application. First you need to add following table in your database. I recommend Sqlite Expert Personal tool to make changes or create new Sqlite database. Open the database and run following query
private static String dbPath= "data/data/com.YourPackageName/applicationDb/";
private static String dbName = "YourDBName";
private SQLiteDatabase applicationDatabase;
private final Context applicationContext;
public VocabTesterDatabaseHelper(Context context) {
super(context, dbName , null, 3);
this. applicationContext = context;
}
private boolean checkDataBase(){
File dbFile = new File( dbPath + dbName);
return dbFile.exists();
}
private void copyDataBase() throws IOException{
try {
InputStream input = applicationContext .getAssets().open(dbName);
String outPutFileName= dbPath + dbName ;
OutputStream output = new FileOutputStream( outPutFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = input.read(buffer))>0){
output.write(buffer, 0, length);
}
output.flush();
output.close();
input.close();
}
catch (IOException e) {
Log.v("error",e.toString());
}
}
public void openDataBase() throws SQLException{
String fullDbPath= dbPath + dbName;
applicationDatabase = SQLiteDatabase.openDatabase( fullDbPath, null,SQLiteDatabase.OPEN_READONLY);
}
@Override
public synchronized void close() {
if( applicationDatabase != null)
applicationDatabase .close();
super.close();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
Since last few days, I have been working with android and I am very excited about it. This is my first blog on Android and many more is to come.
Normally Sqlite database is used with Android application. So this blog is about how you can use existing Sqlite database in Android application. First you need to add following table in your database. I recommend Sqlite Expert Personal tool to make changes or create new Sqlite database. Open the database and run following query
"CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US')"
After that insert record in it.
"INSERT INTO "android_metadata" VALUES ('en_US')"
Once done add your database file in assets folder of your android application. You can do simple copy paste here.
Now we will create class which will have all database related functions and methods. We will use SQLiteOpenHelper class provided by Android framework to connect with Sqlite database. Following is the class definition.
public class DatabaseAdapter extends SQLiteOpenHelper {
private static String dbName = "YourDBName";
private SQLiteDatabase applicationDatabase;
private final Context applicationContext;
public VocabTesterDatabaseHelper(Context context) {
super(context, dbName , null, 3);
this. applicationContext = context;
}
private boolean checkDataBase(){
File dbFile = new File( dbPath + dbName);
return dbFile.exists();
}
private void copyDataBase() throws IOException{
try {
InputStream input = applicationContext .getAssets().open(dbName);
String outPutFileName= dbPath + dbName ;
OutputStream output = new FileOutputStream( outPutFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = input.read(buffer))>0){
output.write(buffer, 0, length);
}
output.flush();
output.close();
input.close();
}
catch (IOException e) {
Log.v("error",e.toString());
}
}
public void openDataBase() throws SQLException{
String fullDbPath= dbPath + dbName;
applicationDatabase = SQLiteDatabase.openDatabase( fullDbPath, null,SQLiteDatabase.OPEN_READONLY);
}
@Override
public synchronized void close() {
if( applicationDatabase != null)
applicationDatabase .close();
super.close();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
That's it and your database helper class is ready. Initially we placed database in Assets folder and later on we moved it to particular folder in application. Still I am working on this class so I will add more functions to class and at the same time, I will upgrade this post. Stay tuned.
Thanks.