The Android GreenDao framework uses additions, deletions, and changes to check articles

reference

Official document

Github

Previous

Android GreenDao framework use basic articles

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:

Randomly generate id string

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.

Guess you like

Origin blog.csdn.net/m0_48440239/article/details/114288904