|
1 | 1 | # spring-boot-demo-orm-mybatis-plus
|
2 | 2 |
|
3 | 3 | > 此 demo 演示了 Spring Boot 如何集成 mybatis-plus,简化Mybatis开发,带给你难以置信的开发体验。
|
| 4 | +> |
| 5 | +> - 2019-09-14 新增:ActiveRecord 模式操作 |
4 | 6 |
|
5 | 7 | ## pom.xml
|
6 | 8 |
|
@@ -420,6 +422,121 @@ public class UserServiceTest extends SpringBootDemoOrmMybatisPlusApplicationTest
|
420 | 422 | }
|
421 | 423 | ```
|
422 | 424 |
|
| 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 | + |
423 | 540 | ## 参考
|
424 | 541 |
|
425 | 542 | - mybatis-plus官方文档:http://mp.baomidou.com/
|
|
0 commit comments