Android更新行int ormlite

时间:2015-03-20 14:37:27

标签: java android sql-update ormlite

我在Android项目中使用ormlite,但我遇到更新数据问题。 这是我保存和更新数据的功能。

public void saveDeadline(){
    if (getIntent().getExtras() == null){
        try {
            Deadline newDeadline = new Deadline(deadlineStr, fromStr, toStr);
            deadlineDao.create(newDeadline);
       }catch (SQLException e){
            e.printStackTrace();
        }
   } else {
        try {
           Deadline newDeadline = new Deadline(deadlineStr, fromStr, toStr);
           deadlineDao.update(newDeadline);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

这是我的实体课程:

@DatabaseTable(tableName = "deadline")
public class Deadline{

    @DatabaseField(dataType = DataType.STRING)
    private String deadlineName;

    @DatabaseField(dataType = DataType.STRING)
    private String deadlineStart;

    @DatabaseField(dataType = DataType.STRING)
    private String deadlineEnd;

    public Deadline() {
        super();
    }

    public Deadline(String deadlineName, String deadlineStart, String deadlineEnd) {
        this.deadlineName = deadlineName;
        this.deadlineStart = deadlineStart;
        this.deadlineEnd = deadlineEnd;
    }

    // removed getters and setters    
}

我的应用无法更新现有数据? 我做错了什么?

1 个答案:

答案 0 :(得分:0)

  

我的应用无法更新现有数据?我做错了什么?

每当您向Java程序寻求帮助时,您应该始终查找并发布包含引起的消息的异常。在您的情况下,如果您查看Android日志,我怀疑您会看到如下消息:

Cannot update deadline because it doesn't have an id field

使用dao.update(...)dao.delete(...)之类的内容,您需要在{{1}中使用id = truegeneratedId = true标记为您的身份字段的字段注释。

查看ORMLite home page和文档中的示例:

@DatabaseField

如果问题,请务必发布异常消息。