Android Afinal架構學習(一) FinalDb 資料庫操作,afinalfinaldb

來源:互聯網
上載者:User

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.基本上所有控制項就掌握了.
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.