zoukankan      html  css  js  c++  java
  • Android Afinal框架学习(一) FinalDb 数据库操作

    框架地址: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

    建库

    [java] view plaincopyprint?

    1. FinalDb db = FinalDb.create(context, "mytest.db"true);  
    有实体bean
    [java] view plaincopyprint?

    1. @Table(name = "user"//@Table 表示orm(对象关系映射)的表名  
    1. public class User {  
    1.     private int id;  
    1.     private String name;  
    1.     private String email;  
    1.     private Date registerDate;  
    1.     private Double money;  
    1.        
    1.     /////////////getter and setter 不能省略哦///////////////  
    1.     public int getId() {  
    1.         return id;  
    1.     }  
    1.     public void setId(int id) {  
    1.         this.id = id;  
    1.     }  
    1.     public String getName() {  
    1.         return name;  
    1.     }  
    1.     public void setName(String name) {  
    1.         this.name = name;  
    1.     }  
    1.     public String getEmail() {  
    1.         return email;  
    1.     }  
    1.     public void setEmail(String email) {  
    1.         this.email = email;  
    1.     }  
    1.     public Date getRegisterDate() {  
    1.         return registerDate;  
    1.     }  
    1.     public void setRegisterDate(Date registerDate) {  
    1.         this.registerDate = registerDate;  
    1.     }  
    1.     public Double getMoney() {  
    1.         return money;  
    1.     }  
    1.     public void setMoney(Double money) {  
    1.         this.money = money;  
    1.     }  
    1. }  

    建表
    [java] view plaincopyprint?

    1. db.save(user);  

    主键注解:
    FinalDB OneToMany懒载入用法:
    public class Parent{
    private int id;
    @OneToMany(manyColumn= "parentId")
    private OneToManyLazyLoader<Parent,Child>children;
    /*....*/
    }
    public class Child{
    private int id;
    private Stringtext;
    @ManyToOne(column= "parentId")
    private Parentparent;
    /*....*/
    }
    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();
    }

    必须有一个主键。

    默认列名为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对象。有非常多方法,CRUD等操作。


    參考链接:http://blog.csdn.net/jjwwmlp456/article/details/38562753


  • 相关阅读:
    (Vedctor经典)A
    C++ map用法
    (约瑟夫应用)5.4.1 Roman Roulette
    部分题集代码
    随机生成数
    如何在AutoCAD中实现鼠标双击事件
    浅谈JS之Error对象
    自定义微信小程序swiper轮播图面板指示点的样式
    物理像素与逻辑像素相关概念
    微信小程序中padding-right和margin-right无效
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7198662.html
Copyright © 2011-2022 走看看