Вы должны иметь класс, расширяющий 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(); // измените таблицу, чтобы добавить новый столбец с именем «описание» dao.executeRaw («ALTER TABLE» account «ADD COLUMN description INTEGER;»); '? –
DinhNgocHien
Да, это то же самое. –
Я отредактировал aswer. Теперь вы можете увидеть, как получить dao внутри класса DatabaseHelper. –