Java Android更新行int或mlite

Java Android更新行int或mlite,java,android,sql-update,ormlite,Java,Android,Sql Update,Ormlite,我在我的Android项目中使用了ormlite,我在更新数据方面有问题。 这是我保存和更新数据的函数 public void saveDeadline(){ if (getIntent().getExtras() == null){ try { Deadline newDeadline = new Deadline(deadlineStr, fromStr, toStr); deadlineDao.create(newDe

我在我的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    
}
我的应用程序无法更新现有数据? 我做错了什么

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

无论何时请求Java程序帮助,都应该始终查找并发布异常,包括导致的消息。在您的情况下,如果您查看Android日志,我怀疑您会看到如下消息:

Cannot update deadline because it doesn't have an id field
一定要使用dao.update之类的东西。。。或道。删除。。。您需要在@DatabaseField注释中使用id=true或generateId=true将一个字段标记为标识字段

请看文档中和的示例:

@DatabaseTable(tableName = "accounts")
public class Account {
    @DatabaseField(id = true)
    private String name;
如果这不是问题所在,那么一定要发布异常消息