Skip to content

Commit d91507e

Browse files
committed
✨ 新增 ActiveRecord 模式操作
1 parent f99ec8e commit d91507e

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

spring-boot-demo-orm-mybatis-plus/README.md

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# spring-boot-demo-orm-mybatis-plus
22

33
> 此 demo 演示了 Spring Boot 如何集成 mybatis-plus,简化Mybatis开发,带给你难以置信的开发体验。
4+
>
5+
> - 2019-09-14 新增:ActiveRecord 模式操作
46
57
## pom.xml
68

@@ -420,6 +422,121 @@ public class UserServiceTest extends SpringBootDemoOrmMybatisPlusApplicationTest
420422
}
421423
```
422424

425+
## 2019-09-14新增
426+
427+
### ActiveRecord 模式
428+
429+
- Role.java
430+
431+
```java
432+
/**
433+
* <p>
434+
* 角色实体类
435+
* </p>
436+
*
437+
* @author yangkai.shen
438+
* @date Created in 2019/9/16 14:04
439+
*/
440+
@Data
441+
@TableName("orm_role")
442+
@Accessors(chain = true)
443+
@EqualsAndHashCode(callSuper = true)
444+
public class Role extends Model<Role> {
445+
/**
446+
* 主键
447+
*/
448+
private Long id;
449+
450+
/**
451+
* 角色名
452+
*/
453+
private String name;
454+
455+
/**
456+
* 主键值,ActiveRecord 模式这个必须有,否则 xxById 的方法都将失效!
457+
* 即使使用 ActiveRecord 不会用到 RoleMapper,RoleMapper 这个接口也必须创建
458+
*/
459+
@Override
460+
protected Serializable pkVal() {
461+
462+
return this.id;
463+
}
464+
}
465+
```
466+
467+
- RoleMapper.java
468+
469+
```java
470+
/**
471+
* <p>
472+
* RoleMapper
473+
* </p>
474+
*
475+
* @author yangkai.shen
476+
* @date Created in 2019/9/16 14:06
477+
*/
478+
public interface RoleMapper extends BaseMapper<Role> {
479+
}
480+
```
481+
482+
- ActiveRecordTest.java
483+
484+
```java
485+
/**
486+
* <p>
487+
* Role
488+
* </p>
489+
*
490+
* @author yangkai.shen
491+
* @date Created in 2019/9/16 14:19
492+
*/
493+
@Slf4j
494+
public class ActiveRecordTest extends SpringBootDemoOrmMybatisPlusApplicationTests {
495+
/**
496+
* 测试 ActiveRecord 插入数据
497+
*/
498+
@Test
499+
public void testActiveRecordInsert() {
500+
Role role = new Role();
501+
role.setName("VIP");
502+
Assert.assertTrue(role.insert());
503+
// 成功直接拿会写的 ID
504+
log.debug("【role】= {}", role);
505+
}
506+
507+
/**
508+
* 测试 ActiveRecord 更新数据
509+
*/
510+
@Test
511+
public void testActiveRecordUpdate() {
512+
Assert.assertTrue(new Role().setId(1L).setName("管理员-1").updateById());
513+
Assert.assertTrue(new Role().update(new UpdateWrapper<Role>().lambda().set(Role::getName, "普通用户-1").eq(Role::getId, 2)));
514+
}
515+
516+
/**
517+
* 测试 ActiveRecord 查询数据
518+
*/
519+
@Test
520+
public void testActiveRecordSelect() {
521+
Assert.assertEquals("管理员", new Role().setId(1L).selectById().getName());
522+
Role role = new Role().selectOne(new QueryWrapper<Role>().lambda().eq(Role::getId, 2));
523+
Assert.assertEquals("普通用户", role.getName());
524+
List<Role> roles = new Role().selectAll();
525+
Assert.assertTrue(roles.size() > 0);
526+
log.debug("【roles】= {}", roles);
527+
}
528+
529+
/**
530+
* 测试 ActiveRecord 删除数据
531+
*/
532+
@Test
533+
public void testActiveRecordDelete() {
534+
Assert.assertTrue(new Role().setId(1L).deleteById());
535+
Assert.assertTrue(new Role().delete(new QueryWrapper<Role>().lambda().eq(Role::getName, "普通用户")));
536+
}
537+
}
538+
```
539+
423540
## 参考
424541

425542
- mybatis-plus官方文档:http://mp.baomidou.com/

0 commit comments

Comments
 (0)