参考
上一篇
这一篇是紧接着上一篇写的,上一篇讲述了准备工作,创建实体类,初始化三个部分。这一篇主要写增删改查。
因为我会接着上一篇的代码写,所以最好先看上一篇。
DaoSession daoSession = GreenDaoManager.getInstance().getDaoSession();
TestUserDao testUserDao = daoSession.getTestUserDao();
通过get方法我们可以获取某个具体的实体类进行操作。
增
单条增加
TestUser testUser = new TestUser(null, name.getText().toString(), Integer.parseInt(age.getText().toString()), sex.getText().toString(), IpUtil.getUUID());
long insert = testUserDao.insert(testUser);
或
TestUser testUser = new TestUser();
testUser.setName( name.getText().toString());
testUser.setAge(Integer.parseInt(age.getText().toString()));
testUser.setSex(sex.getText().toString());
testUser.setUid(IpUtil.getUUID());
long insert = testUserDao.insert(testUser);
返回的insert 就是主键。
这里有个生成随机id的方法:
多条增加
List<TestUser> list = new ArrayList<>();
TestUser testUser = new TestUser();
...
list.add(testUser);
testUserDao.insertInTx(list);
去重添加
插入数据,传入的对象主键如果存在于数据库中,有则更新,否则插入。
//单条
long insert = testUserDao.insertOrReplace(testUser);
//多条
testUserDao.insertOrReplaceInTx(list);
删
单条删除:根据对象删除
//根据对象来删
TestUser testUser = new TestUser(number, name.getText().toString(), Integer.parseInt(age.getText().toString()), sex.getText().toString(), IpUtil.getUUID());
testUserDao.delete(testUser);
或
//根据对象来删
TestUser testUser = new TestUser();
testUser.setId(number);
testUser.setName(name.getText().toString());
testUser.setAge(Integer.parseInt(age.getText().toString()));
testUser.setSex(sex.getText().toString());
testUser.setUid(IpUtil.getUUID());
testUserDao.delete(testUser);
这个方法主键一定要填对,不能直接赋值为null,因为就是根据主键来删,写null运行会报错,其他的参数写默认值或null都可以。
单条删除:根据ID删除
testUserDao.deleteByKey(number);
多条删除:根据对象集合删除
List<TestUser> list = new ArrayList<>();
TestUser testUser = new TestUser();
...
list.add(testUser);
testUserDao.deleteInTx(list);
我们也可以先查出集合再进行删除。
多条删除:根据ID集合删除
List<Long> list = new ArrayList<>();
...
testUserDao.deleteByKeyInTx(list);
多条删除:删除所有数据
testUserDao.deleteAll();
改
单条更改
//根据对象来删
TestUser testUser = new TestUser(number, name.getText().toString(), Integer.parseInt(age.getText().toString()), sex.getText().toString(), IpUtil.getUUID());
testUserDao.update(testUser);
或
//根据对象来删
TestUser testUser = new TestUser();
testUser.setId(number);
testUser.setName(name.getText().toString());
testUser.setAge(Integer.parseInt(age.getText().toString()));
testUser.setSex(sex.getText().toString());
testUser.setUid(IpUtil.getUUID());
testUserDao.update(testUser);
与删除同理,主键不能为空或null。
多条更改
List<TestUser> list = new ArrayList<>();
TestUser testUser = new TestUser();
...
list.add(testUser);
testUserDao.updateInTx(list);
查
查询所有数据
List<TestUser> testUsers =testUserDao.loadAll();
根据ID查询
TestUser testUser= testUserDao.load(number);
写到这基础用法已经可以了。之后我会更新queryBuilder的用法,用queryBuilder进行条件查询。