Search in sources :

Example 1 with AndroidConnectionSource

use of com.j256.ormlite.android.AndroidConnectionSource in project ormlite-android by j256.

the class OrmLiteSqliteOpenHelper method onUpgrade.

/**
	 * Satisfies the {@link SQLiteOpenHelper#onUpgrade(SQLiteDatabase, int, int)} interface method.
	 */
@Override
public final void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    ConnectionSource cs = getConnectionSource();
    /*
		 * The method is called by Android database helper's get-database calls when Android detects that we need to
		 * create or update the database. So we have to use the database argument and save a connection to it on the
		 * AndroidConnectionSource, otherwise it will go recursive if the subclass calls getConnectionSource().
		 */
    DatabaseConnection conn = cs.getSpecialConnection(null);
    boolean clearSpecial = false;
    if (conn == null) {
        conn = new AndroidDatabaseConnection(db, true, cancelQueriesEnabled);
        try {
            cs.saveSpecialConnection(conn);
            clearSpecial = true;
        } catch (SQLException e) {
            throw new IllegalStateException("Could not save special connection", e);
        }
    }
    try {
        onUpgrade(db, cs, oldVersion, newVersion);
    } finally {
        if (clearSpecial) {
            cs.clearSpecialConnection(conn);
        }
    }
}
Also used : SQLException(java.sql.SQLException) AndroidConnectionSource(com.j256.ormlite.android.AndroidConnectionSource) ConnectionSource(com.j256.ormlite.support.ConnectionSource) AndroidDatabaseConnection(com.j256.ormlite.android.AndroidDatabaseConnection) AndroidDatabaseConnection(com.j256.ormlite.android.AndroidDatabaseConnection) DatabaseConnection(com.j256.ormlite.support.DatabaseConnection)

Example 2 with AndroidConnectionSource

use of com.j256.ormlite.android.AndroidConnectionSource in project ormlite-android by j256.

the class OrmLiteSqliteOpenHelper method onCreate.

/**
	 * Satisfies the {@link SQLiteOpenHelper#onCreate(SQLiteDatabase)} interface method.
	 */
@Override
public final void onCreate(SQLiteDatabase db) {
    ConnectionSource cs = getConnectionSource();
    /*
		 * The method is called by Android database helper's get-database calls when Android detects that we need to
		 * create or update the database. So we have to use the database argument and save a connection to it on the
		 * AndroidConnectionSource, otherwise it will go recursive if the subclass calls getConnectionSource().
		 */
    DatabaseConnection conn = cs.getSpecialConnection(null);
    boolean clearSpecial = false;
    if (conn == null) {
        conn = new AndroidDatabaseConnection(db, true, cancelQueriesEnabled);
        try {
            cs.saveSpecialConnection(conn);
            clearSpecial = true;
        } catch (SQLException e) {
            throw new IllegalStateException("Could not save special connection", e);
        }
    }
    try {
        onCreate(db, cs);
    } finally {
        if (clearSpecial) {
            cs.clearSpecialConnection(conn);
        }
    }
}
Also used : SQLException(java.sql.SQLException) AndroidConnectionSource(com.j256.ormlite.android.AndroidConnectionSource) ConnectionSource(com.j256.ormlite.support.ConnectionSource) AndroidDatabaseConnection(com.j256.ormlite.android.AndroidDatabaseConnection) AndroidDatabaseConnection(com.j256.ormlite.android.AndroidDatabaseConnection) DatabaseConnection(com.j256.ormlite.support.DatabaseConnection)

Aggregations

AndroidConnectionSource (com.j256.ormlite.android.AndroidConnectionSource)2 AndroidDatabaseConnection (com.j256.ormlite.android.AndroidDatabaseConnection)2 ConnectionSource (com.j256.ormlite.support.ConnectionSource)2 DatabaseConnection (com.j256.ormlite.support.DatabaseConnection)2 SQLException (java.sql.SQLException)2