android ormlite no such table的bug
来源:互联网 发布:火柴人联盟数据修改 编辑:程序博客网 时间:2024/06/11 23:20
虽然这几天工作繁忙,但是被一个莫名的bug折腾了半天,我还是本着分享的精神,让广大developer不再像我这么蛋疼,在这里记录下这个bug以及解决的方法.
由于图方便原因在项目中使用了ORM开源框架ormlite,对于这个框架使用的还不熟练,今天遇到一个bug,用了很长的时间才解决,用过ormlite的同学应该知道这个框架建表的方法了,首先创建Dao,然后再实例化dao,在需要的地方使用dao中的dao.queryForId(id)这个方法来插入数据的同时也会在SQLITE中新建一个表,这个时候问题来了,比如现在有3张表A,B,C,开始你向A,B中插入了数据也新建了表,项目总是需要调试的,当你再次运行程序,准备插入C表,并且新建数据时,你会发现始终都无法建立C表到SQLITE中,一直报一个错,no such table(数据库中没有这张表),然后你会反复的看自己的代码,看javabean,看dao,你发现没错啊,可是就是无法新建表,无法插入数据了,这个时候其实有个很简单的解决方法:1,卸载你的APP,重新run.
2.进入DDMS,到data/data目录下找到该工程的目录,手动删除掉你刚刚建立的这个数据库
究其原因应该是因为创建表的代码导致的,我代码如下:
package com.eshore.express.db;import java.sql.SQLException;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import com.eshore.express.AppContext;import com.eshore.express.common.Constant;import com.eshore.express.model.AddressList;import com.eshore.express.model.OrderList;import com.eshore.express.model.UserList;import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;import com.j256.ormlite.support.ConnectionSource;import com.j256.ormlite.table.TableUtils;public class DBHelper extends OrmLiteSqliteOpenHelper {private static DBHelper instance = new DBHelper();public static DBHelper getInstance() {return instance;}public DBHelper() {super(AppContext.getContext(), Constant.DB_NAME, null, 1);// 初始化数据库}@Overridepublic void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) {// 创建表try {TableUtils.createTableIfNotExists(connectionSource, UserList.class);TableUtils.createTableIfNotExists(connectionSource,AddressList.class);TableUtils.createTableIfNotExists(connectionSource, OrderList.class);} catch (SQLException e) {e.printStackTrace();}}@Overridepublic void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2,int arg3) {// 更新表}/** * 清空表操作 */public void clear() {try {TableUtils.clearTable(connectionSource, UserList.class);TableUtils.clearTable(connectionSource, AddressList.class);TableUtils.clearTable(connectionSource, OrderList.class);} catch (SQLException e) {e.printStackTrace();}}}
具体的原因有时间了去研究下ormlite的源码,现在将这个问题记录下来,让遇到这个问题的同学不在抓狂
0 0
- android ormlite no such table的bug
- Sugar ORM no such table BUG
- bug宝典PYTHON篇no such table
- 关于android数据库no such table错误的反思
- Android sqlite no such table异常
- Android sqlite no such table异常
- Android sqlite , no such table "t_item"
- 正确解决no such table的问题
- Django “no such table: django_session”的解决办法
- sqlite no such table
- android.database.sqlite.SQLiteException: no such table错误出现的原因及解决办法
- Android开发——数据库框架Sugar出现no such table xxxx错误的解决办法
- Android使用Sugar ORM创建数据库报no such table:...的解决方法
- Android使用Sugar ORM创建数据库报no such table:...的解决方法
- Android—Greendao:SQLite Exception: no such table Error [duplicate]
- Android-70-SQLite出错:no such table: XXXTbl
- android.database.sqlite.SQLiteException: no such table解决方法
- android替代版本 SQLite 报 no such table
- Anagrams
- Qt 无边框窗体改变大小 完美实现
- PE文件附加数据感染之Worm.Win32.Agent.ayd病毒分析
- Linux基础介绍
- 回溯法解0-1背包问题
- android ormlite no such table的bug
- [leetcode]Longest Common Prefix
- java读取文件的方法总结
- 数组试题---一个已经排序的数组,去除里面重复的元素 .
- 免费模板网站
- 让我欢喜让我忧的接口测试【token解析】
- 什么是Linux, Linux学习基础
- Android开发教程之--sql语句一、创建/删除表Stringsql="Createtable
- Tomcat找不到Java_Home