resultHandler);
+
+ default > P selectPage(P page, @Param("ew") Wrapper queryWrapper) {
+ page.setRecords(this.selectList(page, queryWrapper));
+ return page;
+ }
+
+ default >> P selectMapsPage(P page, @Param("ew") Wrapper queryWrapper) {
+ page.setRecords(this.selectMaps(page, queryWrapper));
+ return page;
+ }
+}
+
```
### Service层
+
```java
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
@@ -320,4 +450,240 @@ public class UserServiceImpl extends ServiceImpl implements Use
public interface UserService extends IService {
}
-```
\ No newline at end of file
+```
+
+#### 完整实例
+
+```java
+package com.baomidou.mybatisplus.samples.crud;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.samples.crud.entity.User;
+import com.baomidou.mybatisplus.samples.crud.entity.User2;
+import com.baomidou.mybatisplus.samples.crud.mapper.User2Mapper;
+import com.baomidou.mybatisplus.samples.crud.mapper.UserMapper;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.List;
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ *
+ * 内置 CRUD 演示
+ *
+ *
+ * @author hubin
+ * @since 2018-08-11
+ */
+@SpringBootTest
+public class CrudTest {
+ @Autowired
+ private UserMapper mapper;
+ @Autowired
+ private User2Mapper user2Mapper;
+
+ @Test
+ public void aInsert() {
+ User user = new User();
+ user.setName("小羊");
+ user.setAge(3);
+ user.setEmail("abc@mp.com");
+ assertThat(mapper.insert(user)).isGreaterThan(0);
+ // 成功直接拿回写的 ID
+ assertThat(user.getId()).isNotNull();
+ }
+
+
+ @Test
+ public void bDelete() {
+ assertThat(mapper.deleteById(3L)).isGreaterThan(0);
+ assertThat(mapper.delete(new QueryWrapper()
+ .lambda().eq(User::getName, "Sandy"))).isGreaterThan(0);
+ }
+
+
+ @Test
+ public void cUpdate() {
+ assertThat(mapper.updateById(new User().setId(1L).setEmail("ab@c.c"))).isGreaterThan(0);
+ assertThat(
+ mapper.update(
+ new User().setName("mp"),
+ Wrappers.lambdaUpdate()
+ .set(User::getAge, 3)
+ .eq(User::getId, 2)
+ )
+ ).isGreaterThan(0);
+ User user = mapper.selectById(2);
+ assertThat(user.getAge()).isEqualTo(3);
+ assertThat(user.getName()).isEqualTo("mp");
+
+ mapper.update(
+ null,
+ Wrappers.lambdaUpdate().set(User::getEmail, null).eq(User::getId, 2)
+ );
+ assertThat(mapper.selectById(1).getEmail()).isEqualTo("ab@c.c");
+ user = mapper.selectById(2);
+ assertThat(user.getEmail()).isNull();
+ assertThat(user.getName()).isEqualTo("mp");
+
+ mapper.update(
+ new User().setEmail("miemie@baomidou.com"),
+ new QueryWrapper()
+ .lambda().eq(User::getId, 2)
+ );
+ user = mapper.selectById(2);
+ assertThat(user.getEmail()).isEqualTo("miemie@baomidou.com");
+
+ mapper.update(
+ new User().setEmail("miemie2@baomidou.com"),
+ Wrappers.lambdaUpdate()
+ .set(User::getAge, null)
+ .eq(User::getId, 2)
+ );
+ user = mapper.selectById(2);
+ assertThat(user.getEmail()).isEqualTo("miemie2@baomidou.com");
+ assertThat(user.getAge()).isNull();
+ }
+
+
+ @Test
+ public void dSelect() {
+ mapper.insert(
+ new User().setId(10086L)
+ .setName("miemie")
+ .setEmail("miemie@baomidou.com")
+ .setAge(3));
+ assertThat(mapper.selectById(10086L).getEmail()).isEqualTo("miemie@baomidou.com");
+ User user = mapper.selectOne(new QueryWrapper().lambda().eq(User::getId, 10086));
+ assertThat(user.getName()).isEqualTo("miemie");
+ assertThat(user.getAge()).isEqualTo(3);
+
+ mapper.selectList(Wrappers.lambdaQuery().select(User::getId))
+ .forEach(x -> {
+ assertThat(x.getId()).isNotNull();
+ assertThat(x.getEmail()).isNull();
+ assertThat(x.getName()).isNull();
+ assertThat(x.getAge()).isNull();
+ });
+ mapper.selectList(new QueryWrapper().select("id", "name"))
+ .forEach(x -> {
+ assertThat(x.getId()).isNotNull();
+ assertThat(x.getEmail()).isNull();
+ assertThat(x.getName()).isNotNull();
+ assertThat(x.getAge()).isNull();
+ });
+ }
+
+ @Test
+ public void orderBy() {
+ List users = mapper.selectList(Wrappers.query().orderByAsc("age"));
+ assertThat(users).isNotEmpty();
+ //多字段排序
+ List users2 = mapper.selectList(Wrappers.query().orderByAsc("age", "name"));
+ assertThat(users2).isNotEmpty();
+ //先按age升序排列,age相同再按name降序排列
+ List users3 = mapper.selectList(Wrappers.query().orderByAsc("age").orderByDesc("name"));
+ assertThat(users3).isNotEmpty();
+ }
+
+ @Test
+ public void selectMaps() {
+ List