你應該有擴展OrmLiteSqliteOpenHelper
一類,你創建表(在onCreate
),並對其進行更新(在onUpgrade
):
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public DatabaseHelper(Context context) {
super(context, "database.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource, Account.class);
} catch (SQLException e) {
throw new RuntimeException("Error when create database tables", e);
}
}
@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
database.execSQL("ALTER TABLE `account` ADD COLUMN description INTEGER;");
//same as:
//AccountDAO dao = getDao(Acount.class);
//dao.executeRaw("ALTER TABLE 'account' ADD COLUMN description INTEGER;");
}
}
OrmLiteBaseListActivity
,OrmLiteBaseService
和 OrmLiteBaseTabActivity
提供一種方法getHelper
訪問 數據庫助手在需要時會自動在onCreate()方法中創建 幫助程序,並在onDestroy() 方法中釋放它。
此外,如果使用的是超階級的,你應該有這樣的事情:
public class MyACtivity extends OrmLiteBaseActivity<DatabaseHelper> {
//In this class, you can call getHelper() to obtain the DatabaseHelper instance
}
謝謝您的詳細解答,從你的代碼'database.execSQL(「ALTER TABLE‘帳戶’ ADD COLUMN description INTEGER;「);'等於'Dao dao = getHelper()。getAccountDao(); //改變表格添加一個名爲「description」的新列 dao.executeRaw(「ALTER TABLE'account'ADD COLUMN description INTEGER;」);'? –
DinhNgocHien
是的,它是一樣的。 –
我編輯了aswer。現在,您可以看到如何在DatabaseHelper類中獲取dao。 –