GreenDao数据库,简单实用

public class MainActivity extends AppCompatActivity {

TestBeanDao mUserDao;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    initDB();

}

private void initDB() {
    //通过表明,拿到或者创建表
    DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "testDB");
    //拿到一个可读写的数据库对象
    SQLiteDatabase db = helper.getWritableDatabase();
    //拿到GreenDao的Master对象
    DaoMaster daoMaster = new DaoMaster(db);
    //拿到GreenDao的Session对象
    DaoSession daoSession = daoMaster.newSession();
    //通过Session对象,拿到我们Bean类创建的Dao对象,使用Dao对象,对数据库进行操作
    mUserDao = daoSession.getTestBeanDao();
}

@OnClick({R.id.button_insert, R.id.button_delete, R.id.button_updata, R.id.button_query})
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.button_insert:
            for (int i = 0; i < 10; i++) {
                TestBean testBean = new TestBean();
                testBean.setId((long) i);
                testBean.setName("老戴 " + i);

                //insertOrReplace,优先尝试插入该数据,当插入不成功的时候,更新该数据
                mUserDao.insertOrReplace(testBean);
            }
            break;
        case R.id.button_delete:
            //按照主键删除,需要注意,这个主键必须强转成long
            mUserDao.deleteByKey((long) 9);

            //删除全部

// mUserDao.deleteAll();

            //删除某一个对象

// mUserDao.delete(…);
break;
case R.id.button_updata:
TestBean testBean = new TestBean();
testBean.setId((long) 9);
testBean.setName("老戴 " + 10000);

            //更新
            mUserDao.update(testBean);
            break;
        case R.id.button_query:
            //获取QueryBuilder对象
            QueryBuilder qb = mUserDao.queryBuilder();
            //设置查询条件
            //TestBeanDao.Properties这里都是固定的写法
            List<Object> list = qb.where(TestBeanDao.Properties.Id.eq((long)9))
                    //设置排序,类似于sqlite的orderBy
                    .orderAsc(TestBeanDao.Properties.Id)
                    //.list()返回查询结果
                    .list();

            for(Object o : list){
                //判断o对象是否属于TestBean这个对象
                if(o instanceof TestBean){
                    //属于了,我们才能强转成TestBean这个对象,并且调用里面的方法
                    Toast.makeText(this, ((TestBean) o).getName(), Toast.LENGTH_SHORT).show();
                }
            }
            break;
        default:
    }
}

}

猜你喜欢

转载自blog.csdn.net/black_amber/article/details/90347766