Wednesday, February 25, 2015

ANDROID + read sql file and execute queries

WelcomeActivity.java

 public class WelcomeActivity extends Activity {

  @Override
    public void onCreate(Bundle bundle) {

           super.onCreate(bundle);
           setContentView(R.layout.welcome);
 

           DAO dao = new DAO(this);

             dao.openConnection();
            Log.i(CLASS, "Reading create_tables.sql file");
            InputStream sqlFile = getResources().openRawResource(R.raw.tables);
            dao.readSQlFile(sqlFile);
            dao.closeConnection();

       }
}

DAO.java

public class DAO extends SQLiteOpenHelper {

     private SQLiteDatabase sqliteDatabase;

    public DAO(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    public void openConnection() throws SQLException {

        sqliteDatabase = this.getWritableDatabase();
    }

    public void readSQlFile(InputStream is) {

        String fileData = "";
        try {
            int i;
            while ((i = is.read()) != -1) {
                fileData += (char) i;
            }
        } catch (Exception ex) {
            Log.e(CLASS,
                    "Exception while reading SQL file, Reason: "
                            + ex.getMessage());
        } finally {
            getSQLQueries(fileData);
        }
    }

    public boolean executeQuery(String query) {
        Log.d(CLASS, "Method called executeQuery()");
        boolean flag = false;
        try {
            openConnection();
            sqliteDatabase.execSQL(query);
            flag = true;
        } catch (Exception ex) {
            Log.d(CLASS,
                    "Error while executing quwey, Reason: " + ex.getMessage());
            flag = false;
        } finally {
            closeConnection();
        }
        return flag;
    }

    public void getSQLQueries(String fileData) {

        //Log.i(CLASS, "Method called getSQLQueries()");
        if (fileData != null && fileData.trim().length() > 0) {
            String[] sqlQueries = fileData.split(";");
            for (String query : sqlQueries) {
                Log.d(CLASS, "Query : " + query);
                if (query != null && query.trim().length() > 0) {
                    sqliteDatabase.execSQL(query);
                    //Log.d(CLASS, "Query executed successfully");
                } else {
                    //Log.d(CLASS, "Empty Query");
                }
            }
        }

    }

    public void closeConnection() {
        this.close();
        //Log.i(CLASS, "Method called closeDB()\nDatabase closed succesfully.");
    }

    public SQLiteDatabase getSQLiteDB() {
        return sqliteDatabase;
    }

}
 

tables.sql (put in raw folder)

CREATE TABLE IF NOT EXISTS  SPELLING_DATA
(
    SRNO NUMERIC(6),
    SPELLING VARCHAR(50),
    EMEANING VARCHAR(50),
    HMEANING VARCHAR(50),
    USAGE VARCHAR(100),
    DISPLAY_STATUS VARCHAR(4),
    PARAM1 VARCHAR(10),
    PARAM2 VARCHAR(10),
    PRIMARY KEY (SPELLING)
);


CREATE TABLE IF NOT EXISTS  EXAM_DATA
(
    SRNO NUMERIC(6),
    EXAM_DATE_TIME TIMESTAMP,
    EXAM_RESULT_GRADE VARCHAR(2),
    TOTAL_SPELL VARCHAR(2),
    TOTAL_TRUE VARCHAR(2),
    TOTAL_FALSE VARCHAR(2),
    PARAM1 VARCHAR(2),
    PARAM2 VARCHAR(2),
    PRIMARY KEY (EXAM_DATE_TIME)
);


Keep Visiting

No comments:

Post a Comment