Skip to content

Instantly share code, notes, and snippets.

@Geek4IT
Last active December 20, 2015 09:40
Show Gist options
  • Save Geek4IT/6109822 to your computer and use it in GitHub Desktop.
Save Geek4IT/6109822 to your computer and use it in GitHub Desktop.

Revisions

  1. Geek4IT revised this gist Jul 30, 2013. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,8 @@
    public class CityDBHelper extends SQLiteOpenHelper {

    private static int DB_VERSION = 1;
    private static String DB_PATH = "/data/data/com.geek4it.demo/databases/";
    private static String DB_PATH = Environment.getDataDirectory()
    .getPath()+"/data/com.geek4it.demo/databases/";
    private static String DB_NAME = "cities";
    private SQLiteDatabase myDataBase;
    private final Context myContext;
  2. Geek4IT created this gist Jul 30, 2013.
    88 changes: 88 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,88 @@
    public class CityDBHelper extends SQLiteOpenHelper {

    private static int DB_VERSION = 1;
    private static String DB_PATH = "/data/data/com.geek4it.demo/databases/";
    private static String DB_NAME = "cities";
    private SQLiteDatabase myDataBase;
    private final Context myContext;

    public CityDBHelper(Context context) {

    super(context, DB_NAME, null, DB_VERSION);
    this.myContext = context;
    }

    public void createDataBase() throws IOException {

    boolean dbExist = checkDataBase();
    Log.i("Geek4IT", "createDataBase...dbExist:" + dbExist);
    if (!dbExist) {
    this.getReadableDatabase();
    try {
    copyDataBase();
    } catch (IOException e) {
    throw new Error("Error copying database");
    }
    }
    }

    private boolean checkDataBase() {

    SQLiteDatabase checkDB = null;
    try {
    String myPath = DB_PATH + DB_NAME;
    checkDB = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READONLY);

    } catch (SQLiteException e) {
    }

    if (checkDB != null) {
    checkDB.close();
    }

    return checkDB != null ? true : false;
    }

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

    public void openDataBase() throws SQLException {
    String myPath = DB_PATH + DB_NAME;
    myDataBase = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READONLY);

    }

    @Override
    public synchronized void close() {

    if (myDataBase != null)
    myDataBase.close();

    super.close();

    }

    @Override
    public void onCreate(SQLiteDatabase db) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    }