I was looking for the proper solution for creating database in sdcard android after many crashes and links i made the code.
package com.android.database;
import java.io.File;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.util.Log;
public class DatabaseHelper
{
private static final String TAG = "DatabaseHelper";
public static final String DATABASE_FILE_PATH = "/sdcard";
public static final String DATABASE_NAME = "testDatabase";
private static final String TRACKS_TABLE_CREATE =
"create table if not exists casecategory (_id INTEGER primary key autoincrement, "
+ "category_name TEXT not null);";
private SQLiteDatabase database;
public DatabaseHelper()
{
try
{
// database = SQLiteDatabase.openDatabase(DATABASE_FILE_PATH + File.separator + DATABASE_NAME, null,SQLiteDatabase.OPEN_READWRITE + SQLiteDatabase.CREATE_IF_NECESSARY);
database = SQLiteDatabase.openOrCreateDatabase(DATABASE_FILE_PATH + File.separator + DATABASE_NAME, null);
createTables();
}
catch (SQLiteException ex)
{
// createTables();
Log.e(TAG, "error -- " + ex.getMessage(), ex);
}
finally
{
DatabaseUtil.closeDataBase(database);
}
}
private void createTables()
{
try {
database.execSQL(TRACKS_TABLE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void close()
{
DatabaseUtil.closeDataBase(database);
}
public SQLiteDatabase getReadableDatabase()
{
database = SQLiteDatabase.openDatabase(DATABASE_FILE_PATH
+ File.separator + DATABASE_NAME, null,
SQLiteDatabase.OPEN_READONLY);
return database;
}
public SQLiteDatabase getWritableDatabase()
{
database = SQLiteDatabase.openDatabase(DATABASE_FILE_PATH
+ File.separator + DATABASE_NAME, null,
SQLiteDatabase.OPEN_READWRITE);
return database;
}
}
package com.android.database;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class DatabaseUtil
{
public static void closeCursor(Cursor cursor)
{
if (cursor != null)
{
cursor.close();
}
}
public static void closeDataBase(SQLiteDatabase database)
{
if (database != null)
{
database.close();
}
}
}
package com.android.database;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class DBAdapter {
private DatabaseHelper databaseHelper;
private SQLiteDatabase database;
public DBAdapter open() throws Exception{
databaseHelper = new DatabaseHelper();
database = databaseHelper.getWritableDatabase();
return this;
}
public boolean insertIntoTable(){
try {
database.execSQL("insert into casecategory values('5','v2');");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public Cursor getData(){
return database.rawQuery("select _id,category_name from casecategory;", null);
}
public void close() throws Exception{
database.close();
}
}
package com.android.sdcardDatabase;
import com.android.database.DBAdapter;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.Toast;
public class SdCardDatabaseActivity extends Activity {
/** Called when the activity is first created. */
DBAdapter dbAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbAdapter = new DBAdapter();
try {
dbAdapter.open();
} catch (Exception e) {
e.printStackTrace();
}
setContentView(R.layout.main);
//
boolean flag = dbAdapter.insertIntoTable();
if(flag==true){
Toast.makeText(this,"True ",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this,"False ",Toast.LENGTH_LONG).show();
}
Cursor c = dbAdapter.getData();
if (c != null ) {
if (c.moveToFirst()) {
do {
String firstName = c.getString(c.getColumnIndex("category_name"));
System.out.println("fir ::"+firstName);
}while (c.moveToNext());
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
dbAdapter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Hi,
ReplyDeleteThax for the great tutorial and it would be great if you share the source code of this project. It would be more helpfull.
Regards,
Padma.
do
Deleteyou have full code please
thank you so mush
ReplyDeleteplease give me full code
ReplyDeleteplz give me full source code
ReplyDeletethank you
ReplyDeleteI am placed a sqlite db file created from sqlite browser when i try to read it its coming up error as no such table can you please help
ReplyDeletewhat if im using SQLiteOpenHelper? actually your code is working but im attached from sqliteOpenHelper. but didnt work, can you help ?
ReplyDeletethank you sir
ReplyDeleteThanks but on my Samsung SM-J320ZN Android 5.1.1, API 22 .. the database is placed on the Device. Any ideas?
ReplyDelete