框架地址: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等操作。不详列了


更多相关文章

  1. Android控件属性android:fitsSystemWindows="true"的坑
  2. TextView 设置 Ellipsize 属性,但它不工作?
  3. android 界面属性
  4. android中如何在代码中直接设置View的layout_weight属性
  5. ListView的一些属性设置
  6. (收集)ListView中常用属性
  7. Android控件属性大全[整理]
  8. android DPI与分辨率的关系及计算方式
  9. Android Layout_weight 属性

随机推荐

  1. Netty中拆包和粘包问题的解决(先为明天的
  2. 首批 Android(安卓)One 入门级手机正式推
  3. 一道高频的面试题:什么是零拷贝技术?
  4. 说一下这段时间面试的感觉
  5. 关于android导入工程时出现的@Override错
  6. Android开发―随笔杂记(2010年的)
  7. Redis为什么又引入了多线程?作者也逃不过
  8. android Edittext输入修改软键盘并关闭软
  9. 为什么java中序列化的serialVersionUID总
  10. 微服务还没彻底普及,宏服务又要来了?