import database from external | internal directory:
public class DataBaseHelper extends SQLiteOpenHelper { private static String DataBaseName = "dbname"; private static String DB_PATH = "" ; SQLiteDatabase database ; Context context ; public DataBaseHelper(Context context) { super(context, DataBaseName, null, 1); this.context =context ; String x = context.getDatabasePath("1").getPath() ; x = (String) x.subSequence(0 ,x.length()- 1); DB_PATH = x + DataBaseName ; if (checkExist()){ Log.e("DATA_BASE", " Exist"); }else{ try { createDataBase(); } catch (IOException e) { e.printStackTrace(); } } } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } boolean checkExist(){ boolean is = false ; try{ File file = new File(DB_PATH); if (file.exists()){ is= true ; } }catch (SQLiteException e){ Log.e("DATABESE_ERR" , e.getMessage() ) ; } return is ; } private void createDataBase() throws IOException{ if (checkExist()){ }else { getReadableDatabase() ; try{ copyDataBase(); }catch (IOException e){ Log.e("DATABASE-COPY-ERR", e.getMessage()); } } } private void copyDataBase()throws IOException { Uri fileUri = "your database file uri" ; File file = new File(fileUri.getPath()); FileInputStream inputStream = new FileInputStream(file); OutputStream outputStream = new FileOutputStream(DB_PATH); byte[] buffer = new byte[1024] ; int length =0 ; while( (length = inputStream.read(buffer) ) >0 ){ outputStream.write(buffer ,0 ,length); } outputStream.flush(); outputStream.close(); inputStream.close(); } public void openDataBase() throws SQLiteException{ database = SQLiteDatabase.openDatabase(DB_PATH ,null ,SQLiteDatabase.OPEN_READWRITE); } public void closeDataBase(){ if (database!= null){ database.close(); } try { super.clone() ; } catch (CloneNotSupportedException e) { e.printStackTrace(); } }
}
how to use this class:
public class DataBaseInterface { public DataBaseInterface(Context activity) { context = activity; } private void openDataBase() { try { dataBaseHelper = new DataBaseHelper(context); dataBaseHelper.openDataBase(); } catch (Exception e) { Log.e("DataBaseError", e.getMessage()); } } private void closeDataBase() { dataBaseHelper.close(); } }
and an example of a database query method:
public ArrayList<String> getSomeThing() { buffer = new ArrayList<>(); openDataBase(); query = "SELECT * FROM table_name"; cursor = dataBaseHelper.database.rawQuery(query, null); for (int i = 0; i < cursor.getCount(); i++) { cursor.moveToPosition(i); buffer.add(i, cursor.getString(0)); } closeDataBase(); cursor.close(); return buffer; }
source share