android - 在使用开源数据库工具greenDao时出现SQLiteException,望高手给予

标签 android greendao

我的代码如下:

public void saveOrderLists(final AbstractDao<Order, ?> dao,
        final ArrayList<Order> list) {
    if (list == null || list.isEmpty()) {
        return;
    }
    dao.getSession().runInTx(new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < list.size(); i++) {
                Order order = list.get(i);
                dao.insertOrReplaceInTx(order);
            }
        }
    });
}

出现以下错误:

FATAL EXCEPTION: pool-3-thread-2
android.database.sqlite.SQLiteException: near "Order": syntax error: , while compiling: INSERT OR REPLACE INTO Order ('ID','ORDER_NUMBER','USER_ID','CREATE_TIME','CHECK_IN','CHECK_OUT','TITLE','AMOUNT','ORDER_STATUS') VALUES (?,?,?,?,?,?,?,?,?)
    at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
    at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:78)
    at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
    at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
    at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:271)
    at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:123)
    at de.greenrobot.dao.AbstractDao.executeInsert(AbstractDao.java:348)
    at de.greenrobot.dao.AbstractDao.insertOrReplace(AbstractDao.java:332)
    at com.yopark.logic.OrderLogic$4.onHttpRsp(OrderLogic.java:396)
    at com.yopark.net.HttpClient.sendReq(HttpClient.java:88)
    at com.yopark.net.NetMgr$1.run(NetMgr.java:43)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)

最佳答案

dao.insertOrReplaceInTx(order);

上述方法将列表作为参数,而您传递的是单个对象。使用 insertOrReplace(object) 或将您获取的列表作为参数传递。

dao.insertOrReplaceInTx(list);

关于android - 在使用开源数据库工具greenDao时出现SQLiteException,望高手给予,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354702/

相关文章:

android - 如何在android应用程序中以在线和离线模式加载或检索网页?

android - 如何将 List<String> 属性添加到我的 greendao 生成器?

java - 使用 green Dao 时出错

GreenDAO:从数据库中检索新实体以与更改后的实体进行比较

java - 将主题应用于 AlertDialog Builder 会导致标题无法正常工作

Android 模拟位置 "Teleporting"

java - 访问 TextView 时出现 NullPointerException

Android: MapView.GetLatitudeSpan(), GetLongitudeSpan()异常?

android - GreenDAO:实体与 DAO 上下文分离

android - GreenDao Generator 类在生成模型和 Dao 类时出错。