框架地址:https://github.com/yangfuhai/afinaljava
相應源代碼:git
net.tsz.afinal.annotation.sqlite.* github
net.tsz.afinal.db.sqlite.*sql
net.tsz.afinal.db.table.*框架
net.tsz.afinal.utils.ClassUtils、net.tsz.afinal.utils.FieldUtilspost
FinalDbthis
建庫 spa
FinalDb db = FinalDb.create(context, "mytest.db", true);有實體bean
@Table(name = "user") //@Table 表示orm(對象關係映射)的表名 public class User { private int id; private String name; private String email; private Date registerDate; private Double money; /////////////getter and setter 不能省略哦/////////////// public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getRegisterDate() { return registerDate; } public void setRegisterDate(Date registerDate) { this.registerDate = registerDate; } public Double getMoney() { return money; } public void setMoney(Double money) { this.money = money; } }
db.save(user);
必須有一個主鍵。code
默認列名爲id。並自增。使用註解@Id(column="id")orm
實際bean中沒有id屬性,使用@id(column="name") 使name成主鍵 。非integer等整數類型。不會自增
屬性註解
@Property(column=「uname") , 將屬性name映射成表中的uname字段
取消orm的註解
@Transient 表示不將某屬性映射到表中
一對多關係
@OneToMany(manyColumn="parentid")
多對一關係
@ManyToOne(column="parentid")
模型定義:
public class Parent{
private int id;
@OneToMany(manyColumn = "parentId")
private OneToManyLazyLoader<Parent ,Child> children;
/*....*/
}
public class Child{
private int id;
private String text;
@ManyToOne(column = "parentId")
private Parent parent;
/*....*/
}
使用:
List<Parent> all = db.findAll(Parent.class);
for( Parent item : all){
if(item.getChildren ().getList().size()>0)
Toast.makeText(this,item.getText() + item.getChildren().getList().get(0).getText(),Toast.LENGTH_LONG).show();
}
FinalDb對象,有很是多方法,CRUD等操做。不詳列了