您的位置:首页 > 运维架构 > Shell

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

2016-03-31 18:10 525 查看
@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;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android shell 数据