android - java.sql.SQLException : Unable to run insert stmt on object 异常

标签 android sqlite ormlite

我一直在尝试向数据库中插入一条记录,但它在 Android 中无法正常工作,即使我之前已经这样做过。这是我第一次在 ORMLite 中处理多个表。

这就是我想要做的: 将数据从 XML 存储到模型中 然后尝试从模型中插入数据。

使用的数据库:SQLite ORM:ORMLite

Activity 类

TbDriverInfoBO tbDriverInfoBO = new TbDriverInfoBO();
Document doc = XMLfunctions.XMLfromString(strResult);
NodeList nodes = doc.getElementsByTagName("root");
Element root = (Element) nodes.item(0);
jabongModel.setLoginId(XMLfunctions.getValue(root, "UserId"));
jabongModel.setPassword(XMLfunctions.getValue(root, "UserPwd"));
jabongModel.setDrsno(XMLfunctions.getValue(root, "DRSNo"));
jabongModel.setBrancode(XMLfunctions.getValue(root, "BranchCode"));
jabongModel.setLoginDate(XMLfunctions.getValue(root, "LoginDate"));
//clsDriverInfo obj = new clsDriverInfo(loginId, pswd, drsno,
/*tbDriverInfoBO.setColUserId(jabongModel.getLoginId());
tbDriverInfoBO.setColPwd(jabongModel.getPassword());
tbDriverInfoBO.setColDrs(jabongModel.getDrsno());
tbDriverInfoBO.setColBranch(jabongModel.getBrancode());*/

tbDriverInfoBO.fillBo(jabongModel);

dbHelperTbDriverInfo.addData(tbDriverInfoBO);

BO类:

public class TbDriverInfoBO {

    @DatabaseField(generatedId = true)
    int id;
    @DatabaseField
    String colUserId;
        ...

        // getters and setters

    public TbDriverInfoBO(String colUserId, String colPwd, String colDrs, String colBranch)
    {
        this.colBranch = colBranch;
        this.colDrs = colDrs;
        this.colPwd = colPwd;
        this.colUserId = colUserId;
    }

    public TbDriverInfoBO() {
        // TODO Auto-generated constructor stub
    }
    public void fillBo(JabongModel jabongModel)
    {
       this.colBranch = jabongModel.getBrancode();
       this.colDrs = jabongModel.getDrsno();
       this.colPwd = jabongModel.getPassword();
       this.colUserId = jabongModel.getLoginId();
       //this.id = jabongModel.getId();

    }
}



DBHelperClass
public int addData(TbDriverInfoBO tbDriverInfoBO) {
    int i=0;
    RuntimeExceptionDao<TbDriverInfoBO, String> dao = getTbDriverInfoDaO();
    try{
     i = dao.create(tbDriverInfoBO);
    }
    catch (Exception e) {
        e.getStackTrace();// TODO: handle exception
    }
    return i;
}

我不知道哪里出错了。有人请帮忙!!!

这是堆栈跟踪(Log Cat Obtained):

01-28 15:43:46.251: D/dalvikvm(368): threadid=1: still suspended after undo (sc=1 dc=1 s=Y)
01-28 15:43:46.251: D/dalvikvm(368): GC_FOR_MALLOC freed 8148 objects / 498080 bytes in 72ms
01-28 15:43:49.514: D/dalvikvm(368): threadid=1: still suspended after undo (sc=1 dc=1 s=Y)
01-28 15:43:50.790: D/dalvikvm(368): threadid=1: still suspended after undo (sc=1 dc=1 s=Y)
01-28 15:43:50.900: I/Database(368): sqlite returned: error code = 1, msg = no such table: tbdriverinfobo
01-28 15:43:58.681: D/dalvikvm(368): threadid=1: still suspended after undo (sc=1 dc=1 s=Y)
01-28 15:44:01.956: D/dalvikvm(368): threadid=1: still suspended after undo (sc=1 dc=1 s=Y)

最佳答案

在我看来,您没有tbdriverinfobo 创建表。

sqlite returned: error code = 1, msg = no such table: tbdriverinfobo

你能在帮助程序中显示你的 onCreate() 方法吗?您的应用程序是否有一个现有的数据库并且您之后添加了这个表?您需要增加数据库版本号吗?

关于android - java.sql.SQLException : Unable to run insert stmt on object 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14559993/

相关文章:

Android startActivity - 发生了什么

android - 项目依赖com.google.android.support :wearable:2. 0.2

java - 解析 Twitter API 1.1 JSON

javascript - 如何判断我是否在使用 Ionic2 的移动平台上?

database - 从 sqlite3 迁移到 postgresql on Rails 3?

python - 名称错误 : global name 'User' is not defined?

java - 相同类型的嵌套关系

java - ORMLite:支持 View 吗?

android - 具有多列的 ORMLite 自定义数据持久性

android - 如何将预制数据库导入由 ormlite 管理的 sqlite