大佬教程收集整理的这篇文章主要介绍了android – OrmLite SQLiteException:没有这样的表,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_772_7@public class DatabaseHelper extends OrmLitesqliteOpenHelper { private static final String TAG = "databaseHelper"; private static final String DATABASE_NAME = "mydb.db"; // Mind onUpgrade when changing this! private static final int DATABASE_VERSION = 18; private Dao<Account,Integer> accountDao; public DatabaseHelper(Context context) { super(context,DATABASE_NAME,null,DATABASE_version); } @Override public void onCreate(sqliteDatabase sqliteDatabase,Connectionsource connectionsourcE) { try { TableUtils.createTable(connectionsource,Account.class); } catch (sqlException E) { ExceptionHandler.handleException(E); } } @Override public void onUpgrade(sqliteDatabase database,Connectionsource connectionsource,int oldVersion,int newVersion) { } private Dao<Account,Integer> getAccountDao() { if (accountDao == null) { try { accountDao = getDao(Account.class); } catch (Exception exC) { Log.e(tag,exc.toString()); ExceptionHandler.handleException(exc); } } return accountDao; } public void writeAccount(Account account) { try { TableUtils.createTableIfNotExists(connectionsource,IWAccount.class); getAccountDao().createOrupdate(account); } catch (sqlException exC) { Log.e(tag,exc.toString()); ExceptionHandler.handleException(exc); } } public void deleteIWAccount() { try { TableUtils.clearTable(connectionsource,Account.class); } catch (sqlException E) { Log.e(tag,e.toString()); ExceptionHandler.handleException(E); e.printStackTrace(); } } public Account getAccount() { List<Account> accounts = null; try { accounts = getAccountDao().queryForAll(); } catch (sqlException E) { e.printStackTrace(); ExceptionHandler.handleException(E); } if (accounts == null || accounts.isEmpty()) { return null; } if (accounts.size() > 1) { ExceptionHandler.handleException(new IllegalStateException("More than 1 IWAccounts in DB")); } return accounts.get(0); } }
处理的例外都写入Crittercism.
@H_772_7@java.sql.sqlException: Problems execuTing Android query: SELECT * FROM `account` at com.j256.ormlite.misc.sqlExceptionUtil.create(sqlExceptionUtil.java:22) [...] Caused by: android.database.sqlite.sqliteException: no such table: account (code 1):,while compiling: SELECT * FROM `account`
我的DatabaseHelper尝试在其onCreate()方法中为Account创建表.
我的第一个想法是在onCreate()中创建表时出错了.批评虽然让我浏览发生此错误的用户的所有其他已处理或未处理的异常,并且在创建表时没有任何异常.
关于这可能是什么问题的任何想法?
编辑:这是我的DatabaseHelper的简化版本,与其他Daos和表相同的错误.使用的类非常简单,这里是Account类:
@H_772_7@public class Account implements serializable { // id is set so we always update the old object instead of creaTing a new one in the db Helper @DatabaseField(id = true,canBeNull = falsE) privatE int mid = 0; @DatabaseField private String id; @DatabaseField private String userName; @DatabaseField private String displayName; }
EDIT2:我对应用程序进行了更新,我的持久化类使用@DatabaseTable注释并重新创建(或尝试)onUpgrade()中的表,但问题仍然存在.
从docs:
以下应创建一个表帐户:
@H_772_7@@DatabaseTable public class Account implements serializable { // id is set so we always update the old object instead of creaTing a new one in the db Helper @DatabaseField(id = true,canBeNull = falsE) privatE int mid = 0; @DatabaseField private String id; @DatabaseField private String userName; @DatabaseField private String displayName; }
您可以使用注释中的tablename字段来更改表名称,例如@DatabaseTable(tablename =“accounts”)否则文档状态:
以上是大佬教程为你收集整理的android – OrmLite SQLiteException:没有这样的表全部内容,希望文章能够帮你解决android – OrmLite SQLiteException:没有这样的表所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。