Android Afinal架構學習(一) FinalDb 資料庫操作,afinalfinaldb
架構地址:https://github.com/yangfuhai/afinal
對應源碼:
net.tsz.afinal.annotation.sqlite.*
net.tsz.afinal.db.sqlite.*
net.tsz.afinal.db.table.*
net.tsz.afinal.utils.ClassUtils、net.tsz.afinal.utils.FieldUtils
FinalDb
建庫
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);
主鍵註解:
必須有一個主鍵。預設列名為id,並自增。使用註解@Id(column="id")
實際bean中沒有id屬性,使用@id(column="name") 使name成主鍵 ,非integer等整數類型,不會自增
屬性註解
@Property(column=“uname") , 將屬性name映射成表中的uname欄位
取消orm的註解
@Transient 表示不將某屬性對應到表中
一對多關聯性
@OneToMany(manyColumn="parentid")
多對一關聯性
@ManyToOne(column="parentid")
FinalDB OneToMany懶載入使用方法:
模型定義:
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等操作。不詳列了
afinal thinkandroid哪個架構用的多?資料全?社區更活躍?
我們確實可以選擇適合自己項目的架構,適合自己項目這個問題能扯的就太廣泛了,afinal,thinkandroid等都提供了些功能,特別對剛開始開發沒多久的都可以算是適合,再比如:java web開發中,類似Spring,lucene的架構很多,但是Spring,lucene用的最多,而且社區很活躍,資料也多,所以就選Spring,lucene。我問的問題其實就是:現在android開發哪個架構比較流行,社區比較活躍,資料比較多。因為不管哪個公司還是個人開發人員都希望選擇這樣的架構,代價比較小,我們先不談自己開發適合自己的架構,因為代價大,也不用重複造輪子。 查看原帖>>
希望採納
android開發架構
json解析可以用google的gson包.
網路請求和緩衝機制(一般是指圖片緩衝吧)可以看看volley.
資料庫比較簡單,android內建的已經算是封裝過了.不過你可以看看Afinal裡面的FinalDb.
UI方面就沒有了.都是自己寫的.掌握好view和viewgroup.基本上所有控制項就掌握了.