2015-08-17 42 views
1

我有一個SQLite database,我在Android中創建了手動管理所有代碼以執行我的讀寫操作。我最近發現ORMlite。我希望使用ORMlite來管理我的數據庫。問題是應用程序已經在android市場上,我不希望我的用戶丟失他們的數據。Android - 幫助遠離內置SQLite到Ormlite

有沒有辦法告訴ORMlite開始管理已經建立的數據庫?或者是否有標準的做法來從舊數據庫中讀取所有數據並將其寫入新數據?

回答

0

經過相當程度的盡職調查後,我意識到這是多麼簡單的任務。 Ormlite實際上位於內置SQLite之上。無需代碼即可轉至Ormlite。我在我的Ormlite Helper Class中簡單引用了我的數據庫名稱。 我的代碼如下。我希望這可以幫助未來的其他人。

public class OrmHelper extends OrmLiteSqliteOpenHelper { 
    private final String TAG = this.getClass().getSimpleName(); 
    private Context context; 

    public OrmHelper(Context context) { 
     //references my Sqlite dbnames. I made them static in the SqlHelper class 
     super(context, DataBase.DB_Name, null, DataBase.DB_Version); 
     this.context = context; 
    } 

    @Override 
    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) { 
     try { 
      Log.i(TAG, "Creating database in Ormlite"); 
      TableUtils.createTable(connectionSource, Model.class); 
      TableUtils.createTable(connectionSource, UserCredential.class); 
     } catch (SQLException e) { 
      Log.e(TAG, "Error creating database", e); 
     } 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, 
     int oldVersion, int newVersion) { 

    } 

    /** 
    * this genric method is for grabbing the Dao for any ormlite table 
    */ 
    public <T, V> Dao<T, V> getTypeDao(Class<T> classType, Class<V> idType) 
      throws SQLException{ 
     return getDao(classType); 
    } 
}