Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Afinal框架學習(一) FinalDb 數據庫操作

Android Afinal框架學習(一) FinalDb 數據庫操作

編輯:關於Android編程

框架地址: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 children;
    /*....*/
}
public class Child{
    private int id;
    private String text;
    @ManyToOne(column = "parentId")
    private  Parent  parent;
    /*....*/
}

使用:

List 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等操作。不詳列了


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved