我正在尝试在Android项目中使用ORMLite进行数据库持久化。从例子看起来很好。一旦我开始使用它,我发现我并不完全理解它的要求和行为。
假设我有一个名为Bone的课,我想坚持下去。
@DatabaseTable(tableName = "bones")
public class Bone{
// user defined
@DatabaseField(dataType = DataType.STRING)
private String color;
@DatabaseField
private double length;
@DatabaseField
private int quantity;
// db assigned
@DatabaseField(generatedId = true)
private int id;
public Bone(){
}
// constructors
public Bone(String color, int quantity) {
this(color, quantity, 0);
}
public Bone(String color, int quantity, int id) {
this.color = color;
this.quantity = quantity;
this.id = id;
}
public Bone(Bone old, int id){
this.color = old.color;
this.length = old.length;
this.quantity = old.quantity;
this.id = id;
}
public String getColor() {
return color;
}
public double getLength() {
return length;
}
public int getQuantity() {
return quantity;
}
public void setLength(double length) {
this.length = length;
}
public int getId() {
return id;
}
}
其字段的getter和setter名称有哪些要求? 他们的名字有什么不同吗?我可以使用没有getter和setter的人吗?
除了没有arg构造函数外,还需要其他构造函数吗?
请帮忙。
答案 0 :(得分:6)
1)对其字段的getter和setter名称有什么要求?他们的名字有什么不同吗?我可以使用没有getter和setter的人吗?
对getter和setter没有要求。默认情况下,ORMLite使用反射直接构建实体字段。
如果您设置了useGetSet = true
field of the @DatabaseField annotation,那么您需要设置get / set方法。请参阅javadocs了解格式。
2)除了没有arg构造函数,还需要其他构造函数吗?
没有。在反射工作之前,ORMLite只需要一个可访问的无参数构造函数来实例化对象。