提交 ef04f16c 编写于 作者: E Erwin

mapper CRUD操作及笔记

上级 e61fe08d
......@@ -8,7 +8,87 @@
对于MyBatis-Plus而言,增删改查,有三种方式实现。
1、使用MyBatis-Plus提供的服务接口。
2、使用MyBatis的Mapper接口。
3、使用Mybatis-Plus提供的AR特性,Model可进行CRUD操作。
AR即为ActiveRecord,是一种领域模型模式,一个模型类对应一个表。通过实体类对象直接进行表的CRUD操作。
\ No newline at end of file
AR即为ActiveRecord,是一种领域模型模式,一个模型类对应一个表。通过实体类对象直接进行表的CRUD操作。
## MyBatis-Plus服务接口
[CategoryRepositoryTests](../src/test/java/com.fengwenyi.mybatisplusexample.CategoryRepositoryTests)
### 数据添加
```
mpXxxService.save(entity);
```
### 数据删除
```
mpXxxService.removeById(entity.getId());
```
### 数据查询
```
mpXxxService.list(queryWrapper);
```
### 数据修改
```
mpXxxService.updateById(entity);
```
## MyBatis数据库操作Mapper接口
[CategoryMapperTests](../src/test/java/com.fengwenyi.mybatisplusexample.CategoryMapperTests)
### 数据添加
```
xxxMapper.insert(entity);
```
### 数据删除
```
xxxMapper.deleteById(entity);
```
### 数据查询
```
xxxMapper.selectList(queryWrapper);
```
### 数据修改
```
xxxMapper.updateById(entity);
```
## Mybatis-Plus提供的AR
[CategoryModelTests](../src/test/java/com.fengwenyi.mybatisplusexample.CategoryModelTests)
### 数据添加
```
xxxModel.insert();
```
### 数据删除
```
xxxModel.deleteById();
```
### 数据修改
```
xxxModel.updateById();
```
\ No newline at end of file
package com.fengwenyi.mybatisplusexample;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fengwenyi.mybatisplusexample.entity.CategoryEntity;
import com.fengwenyi.mybatisplusexample.mapper.ICategoryMapper;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.List;
/**
*
* MyBatis Mapper CRUD
*
* @author Erwin Feng
* @since 2021-04-01
*/
@Component
@Slf4j
public class CategoryMapperTests extends MybatisPlusExampleApplicationTests {
private CategoryEntity entity;
@Resource
private ICategoryMapper categoryMapper;
// 创建数据
private void create() {
entity = new CategoryEntity().setName("category test data");
categoryMapper.insert(entity);
}
// 清除数据
private void clear() {
categoryMapper.deleteById(entity.getId());
}
@Test
public void testAdd() {
entity = new CategoryEntity().setName("category test data");
int resultNum = categoryMapper.insert(entity);
Assert.isTrue(resultNum == 1, "data add test failure");
clear();
}
@Test
public void testDelete() {
create();
int resultNum = categoryMapper.deleteById(entity.getId());
Assert.isTrue(resultNum == 1, "data delete test failure");
}
@Test
public void testUpdate() {
create();
entity.setName("category update");
int resultNum = categoryMapper.updateById(entity);
Assert.isTrue(resultNum == 1, "data update test failure");
clear();
}
@Test
public void testQuery() {
create();
List<CategoryEntity> categoryEntityList = categoryMapper.selectList(new QueryWrapper<>());
for (CategoryEntity entity : categoryEntityList) {
log.info(entity.toString());
}
clear();
}
}
......@@ -57,6 +57,8 @@ public class CategoryModelTests extends MybatisPlusExampleApplicationTests {
model.setName("category update");
boolean testResult = model.updateById();
Assert.isTrue(testResult, "data update test failure");
clear();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册