Skip to main content

Common Operations

The generic BaseMapper interface provides a set of common database operation methods utilizing object mapping information to complete basic CRUD operations on the database.

You can choose the appropriate way to obtain a Session according to your project architecture. For details, please refer to: Framework Integration

Add, Delete, Update

Insert
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.insert(user);
Batch Insert
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.insert(Arrays.asList(user1, user2));
Partial Update
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.update(user); // Based on primary key, update non-null data in user object
Replace Update
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.replace(user); // Based on primary key, replace the entire row of user table
Insert or Replace Update
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.upsert(user); // Based on the primary key in the user object, use insert if it does not exist in the database, otherwise update
Delete Object
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.delete(user); // Delete based on primary key in user object
Delete by ID
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.deleteById(userId);
Delete a batch of objects by ID
BaseMapper<User> mapper = session.createBaseMapper(User.class);
int res = mapper.deleteByIds(Arrays.asList(userId1, userId2));

Query

Query Object by ID
BaseMapper<User> mapper = session.createBaseMapper(User.class);
User user = mapper.selectById(userId);
Query a group of objects by ID
BaseMapper<User> mapper = session.createBaseMapper(User.class);
List<User> users = mapper.selectById(Arrays.asList(userId1, userId2));
Query list by sample
BaseMapper<User> mapper = session.createBaseMapper(User.class);
List<User> users = mapper.listBySample(sampleUser);

Pagination

  • PageResult pagination results will also contain Original Pagination Info, Total Records, Total Pages.
Pagination Query
User sample = ...
Page pageInfo = PageObject.of(0, 20); // Page 0, 20 items per page, page number starts from 0
//or pageInfo = PageObject.of(1, 20, 1);// Page 1, 20 items per page, page number starts from 1
BaseMapper<User> mapper = session.createBaseMapper(User.class);
PageResult<User> result = mapper.pageBySample(sample, pageInfo);
Pagination Query with Sorting Strategy
User sample = ...
Page pageInfo = PageObject.of(0, 20); // Page 0, 20 items per page, page number starts from 0
//or pageInfo = PageObject.of(1, 20, 1);// Page 1, 20 items per page, page number starts from 1
Map<String, OrderType> orderBy = new HashMap<>();
orderBy.put("id", OrderType.DESC);
orderBy.put("name", OrderType.ASC);

BaseMapper<User> mapper = session.createBaseMapper(User.class);
PageResult<User> result = mapper.pageBySample(sample, pageInfo, orderBy);
Specify Null Value Sorting Strategy when Sorting
User sample = ...
Page pageInfo = PageObject.of(0, 20); // Page 0, 20 items per page, page number starts from 0
//or pageInfo = PageObject.of(1, 20, 1);// Page 1, 20 items per page, page number starts from 1

Map<String, OrderType> orderBy = new HashMap<>();
orderBy.put("id", OrderType.DESC);
orderBy.put("name", OrderType.ASC);

Map<String, OrderNullsStrategy> nulls = new HashMap<>();
nulls.put("name", OrderNullsStrategy.FIRST);

BaseMapper<User> mapper = session.createBaseMapper(User.class);
PageResult<User> result = mapper.pageBySample(sample, pageInfo, orderBy, nulls);