我在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
}
我的应用无法更新现有数据? 我做错了什么?
答案 0 :(得分:0)
我的应用无法更新现有数据?我做错了什么?
每当您向Java程序寻求帮助时,您应该始终查找并发布包含引起的消息的异常。在您的情况下,如果您查看Android日志,我怀疑您会看到如下消息:
Cannot update deadline because it doesn't have an id field
使用dao.update(...)
或dao.delete(...)
之类的内容,您需要在{{1}中使用id = true
或generatedId = true
标记为您的身份字段的字段注释。
查看ORMLite home page和文档中的示例:
@DatabaseField
如果不问题,请务必发布异常消息。