Android 与升级ORMLite模式混淆

Android 与升级ORMLite模式混淆,android,ormlite,Android,Ormlite,我已将columndescription添加到我的表帐户中。我还阅读了一些文章来升级我的数据库。但是,我对这段代码中的getHelper方法有点困惑: Dao<Account, Integer> dao = getHelper().getAccountDao(); // change the table to add a new column named "description" dao.executeRaw("ALTER TABLE `account` ADD COLUMN d

我已将columndescription添加到我的表帐户中。我还阅读了一些文章来升级我的数据库。但是,我对这段代码中的getHelper方法有点困惑:

Dao<Account, Integer> dao = getHelper().getAccountDao();
// change the table to add a new column named "description" 
dao.executeRaw("ALTER TABLE `account` ADD COLUMN description INTEGER;");

它是从哪里来的?我没有看到getHelper在我的DatabaseHelper类中声明。有人能帮我吗?

您应该有一个扩展OrmLiteSqliteOpenHelper的类,您可以在onCreate中创建表,并在onUpgrade中更新它们:

OrmListBaseActivity、OrmListBaseService和 OrmLiteBaseTabActivity提供一个方法getHelper来访问 只要需要,数据库助手就会自动创建 在onCreate方法中创建帮助程序,并在onDestroy中释放它 方法

此外,如果您正在使用上面的类,您应该有如下内容:

public class MyACtivity extends OrmLiteBaseActivity<DatabaseHelper> {

    //In this class, you can call getHelper() to obtain the DatabaseHelper instance 

}

感谢您从代码数据库中提供的详细答案。execSQLALTER表'account'ADD COLUMN description INTEGER;;等于Dao Dao=getHelper.getAccountDao;//更改表以添加名为description dao的新列。executeRawALTER表“account”添加列描述整数;;?我已经编辑了aswer。现在,您可以看到如何在DatabaseHelper类中获取dao。我运行了您的代码,但仍然无法向表中添加描述列。日志显示:Android sqlite游标中的未知字段“描述”,这里有问题吗?您是否已将新字段描述添加到帐户表映射中?是的,我有:@DatabaseField private Integer description;在科目表中
public class MyACtivity extends OrmLiteBaseActivity<DatabaseHelper> {

    //In this class, you can call getHelper() to obtain the DatabaseHelper instance 

}