reference
Previous
This one is written immediately after the previous one. The previous one describes the preparation work, creating entity classes, and initializing three parts. This article mainly writes additions, deletions, revisions and investigations.
Because I will write the code from the previous article, it is best to read the previous article first.
DaoSession daoSession = GreenDaoManager.getInstance().getDaoSession();
TestUserDao testUserDao = daoSession.getTestUserDao();
Through the get method, we can get a specific entity class for operation.
increase
Single increase
TestUser testUser = new TestUser(null, name.getText().toString(), Integer.parseInt(age.getText().toString()), sex.getText().toString(), IpUtil.getUUID());
long insert = testUserDao.insert(testUser);
or
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);
The returned insert is the primary key.
Here is a method to generate a random id:
Multiple increase
List<TestUser> list = new ArrayList<>();
TestUser testUser = new TestUser();
...
list.add(testUser);
testUserDao.insertInTx(list);
De-duplication
Insert data. If the primary key of the incoming object exists in the database, it will be updated, otherwise it will be inserted.
//单条
long insert = testUserDao.insertOrReplace(testUser);
//多条
testUserDao.insertOrReplaceInTx(list);
delete
Single delete: delete according to the object
//根据对象来删
TestUser testUser = new TestUser(number, name.getText().toString(), Integer.parseInt(age.getText().toString()), sex.getText().toString(), IpUtil.getUUID());
testUserDao.delete(testUser);
or
//根据对象来删
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);
The primary key of this method must be filled in correctly, and it cannot be directly assigned to null, because it is deleted based on the primary key. Writing null will cause an error to run, and other parameters can be written with default values or null.
Single delete: delete according to ID
testUserDao.deleteByKey(number);
Multiple deletion: delete according to object collection
List<TestUser> list = new ArrayList<>();
TestUser testUser = new TestUser();
...
list.add(testUser);
testUserDao.deleteInTx(list);
We can also find out the collection first and then delete it.
Multiple deletion: delete according to ID collection
List<Long> list = new ArrayList<>();
...
testUserDao.deleteByKeyInTx(list);
Multiple deletion: delete all data
testUserDao.deleteAll();
change
Single change
//根据对象来删
TestUser testUser = new TestUser(number, name.getText().toString(), Integer.parseInt(age.getText().toString()), sex.getText().toString(), IpUtil.getUUID());
testUserDao.update(testUser);
or
//根据对象来删
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);
Similar to delete, the primary key cannot be empty or null.
Multiple changes
List<TestUser> list = new ArrayList<>();
TestUser testUser = new TestUser();
...
list.add(testUser);
testUserDao.updateInTx(list);
check
Query all data
List<TestUser> testUsers =testUserDao.loadAll();
Query by ID
TestUser testUser= testUserDao.load(number);
It's ok to write this basic usage. Later I will update the usage of queryBuilder and use queryBuilder for conditional queries.