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:
}
}
}