ormlite框架使用

来源:互联网 发布:seo发展方向 编辑:程序博客网 时间:2024/06/10 03:32

http://www.jianshu.com/p/05782b598cf0

http://blog.csdn.net/baidu_26994091/article/details/51893798

关键字:
@DatabaseTable表名:如@DatabaseTable(tableName = "run_train_report")如果不指定名字,在Android中会以类名作为表名
@DatabaseField字段名:如:@DatabaseField(columnName = "userId")id = true表示作为主键
defaultValue="男"  默认值
ormlite的外键约束(一对一、一对多关系)


如果是一对一,我们还是用@DatabaseField注解,但要指定(foreign = true)表示是一个外键。(foreign大哥那边),小弟不用
@DatabaseField(foreign=true,foreignAutoRefresh=true,columnName = "xxx") //foreign 表示外键  foreignAutoRefresh 表示 自动查询(当查询该对象的时候会自动查询他的外键对象)


一对多关系:
外键字段:注:要实现一对多关系,一定要这样定义,不然会出错。
(大哥那边 ForeignCollection)一那边
    @ForeignCollectionField(eager = true) // 必须  表示eager = true依赖加载       就是当查询该对象的时候 也会立即查询出他所带的 集合
    public ForeignCollection<Style> styles;
(小弟那边)(n)小弟也要加foreign表示一个外键
@DatabaseField(foreign = true, foreignAutoRefresh = true)
public User Users;

@DatabaseTable(tableName = "person" )      //设置表的名字  

@DatabaseField(generatedId = true)              //generatedId    自增涨   不一定是id

int id; 

@DatabaseField(canBeNull = true, defaultValue = "name")   // canBeNull 表示是否可以为空     defaultValue 默认值

String name;

@DatabaseField(id = true)     // id  表示主键

int  card ;

/****************************************************************************************************************************************/

一对一

@DatabaseField(foreign=true,foreignAutoRefresh=true)         //foreign 表示外键    foreignAutoRefresh 表示 自动查询(当查询该对象的时候会自动查询他的外键对象)

  private Department depa;

/****************************************************************************************************************************************/

一对多  必须两方是都添加相应的属性

一的一方

 @ForeignCollectionField  
  private ForeignCollection<User> users;     //必须用ForignCollection  或者 Collection

在一方的数据库里面不会产生该字段  ,如果产生一个存放多方的字段,你想他怎么存          

查找的时候去 拿着 的一方的“主键”值去多的一方数据库里面将所有数据符合条件的数据都查

@ForeignCollectionField(eager = true)  //eager  表示依赖加载       就是当查询该对象的时候 也会立即查询出他所带的  集合


多的一方

@DatabaseField(foreign=true,foreignAutoRefresh=true)

  private Department depa;

如果不指定字段的具体名字就会将  命名为   属性名_id        这里就是depa_id

该字段会存放多的一方的主键


0 0