ORMLite的几个关键注解的使用说明

@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

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

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

多对多

需要 建一个第三方做为  一的一方

多   ----  一   ------多

多对多用的很少

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








常用操作:

数据库查询操作:

一种是条件与:

一种是条件或:

条件与  和条件或 相结合:

 Where where = queryBuilder.where();
 where.or(where.and(where.eq(Account.NAME_FIELD_NAME, "foo"), where.eq(Account.PASSWORD_FIELD_NAME, "_secret")),
                where.and(where.eq(Account.NAME_FIELD_NAME, "bar"), where.eq(Account.PASSWORD_FIELD_NAME, "qwerty")));



多表联合查询     一个表的queryBuider   添加到另一个 queryBuilder中   实现两个表联合查询

    public List<LocalBmiData> getBmiData() {
        MeasureDataDbHelper helper = GDbHelperManager.getHelper(mContext,
                MeasureDataDbHelper.class);
        try {
            Dao<DaoMeasureDataState, Integer> daoState = helper
                    .getDao(DaoMeasureDataState.class);
            Dao<LocalBmiData, String> dao = helper.getDao(LocalBmiData.class);

            QueryBuilder<DaoMeasureDataState, Integer> stateBuilder = daoState
                    .queryBuilder();
            stateBuilder.where().eq("datatype", DataType.BMI).and()
                    .raw("id=bmi_data_tab.id");

            QueryBuilder<LocalBmiData, String> builder = dao.queryBuilder();
            builder.where().not().exists(stateBuilder);
            builder.orderBy("id", false);// 按id降序排列

            return builder.query();

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return null;
    }




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值