Android Open Source - SQLiteDatabase S Q Lite Database Helper






From Project

Back to project page SQLiteDatabase.

License

The source code is released under:

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> Everyone is permitted to copy and distribute v...

If you think the Android project SQLiteDatabase listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Intellectual properties of Supun Lakshan Wanigarathna Dissanayake
 * Copyright (c) 2013, Supun Lakshan Wanigarathna Dissanayake. All rights reserved.
 * Created on : Jun 10, 2014, 9:19:37 AM
 *///from   w w w .  java2 s .c o m

package org.xfinity.android_sqlite_database_example.db;

import android.content.Context;
import android.content.res.AssetManager;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import org.jetbrains.annotations.NotNull;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * @author Supun Lakshan Wanigarathna Dissanayake
 * @mobile +94711290392
 * @email supunlakshan.xfinity@gmail.com
 */
public class SQLiteDatabaseHelper extends SQLiteOpenHelper {

  private static final String DATABASE_NAME = "my_db";
  private static final int VERSION = 1;
  private static volatile SQLiteDatabaseHelper databaseHelper;
  private final AssetManager assets;

  private SQLiteDatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, VERSION);
    assets = context.getAssets();
  }

  public static synchronized SQLiteDatabaseHelper getDatabaseInstance(@NotNull Context context) {
    if (databaseHelper == null) {
      databaseHelper = new SQLiteDatabaseHelper(context.getApplicationContext());
    }
    return databaseHelper;
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
    InputStream databaseStream = null;
    BufferedReader bufferedReader = null;
    try {
      //database.sql is the file we wrote our database structure
      //reads the database.sql file
      databaseStream = assets.open("database.sql");
      bufferedReader = new BufferedReader(new InputStreamReader(databaseStream));
      StringBuilder databaseDeclaration = new StringBuilder();
      String line;
      while ((line = bufferedReader.readLine()) != null) {
        databaseDeclaration.append(line.replace("\t", ""));
      }

      //split from ; to get list of sql queries
      for (String sql : databaseDeclaration.toString().split(";")) {
        String trimmedQuery;
        if (!(trimmedQuery = sql.trim()).isEmpty()) {
          db.execSQL(trimmedQuery);
        }
      }
      //enable foreign key constraint
      db.execSQL("PRAGMA foreign_keys = ON");
    } catch (IOException ex) {
      ex.printStackTrace();
    } finally {
      //close bufferedReader
      if (bufferedReader != null) {
        try {
          bufferedReader.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      //close databaseStream
      if (databaseStream != null) {
        try {
          databaseStream.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }

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

  @Override
  public synchronized SQLiteDatabase getWritableDatabase() {
    SQLiteDatabase writableDatabase = super.getWritableDatabase();
    writableDatabase.execSQL("PRAGMA foreign_keys = ON");
    return writableDatabase;
  }

  @Override
  public synchronized SQLiteDatabase getReadableDatabase() {
    return super.getReadableDatabase();
  }
}




Java Source Code List

org.xfinity.android_sqlite_database_example.activity.StartingPoint.java
org.xfinity.android_sqlite_database_example.controller.NameController.java
org.xfinity.android_sqlite_database_example.db.DbHandler.java
org.xfinity.android_sqlite_database_example.db.SQLiteDatabaseHelper.java