• Mybatis-Plus ActiveRecord


    ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。

    ActiveRecord的主要思想是:
    • 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录,通常表的每个字段在类中都有相应的Field;
    • ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;
    • ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑。

    简而言之,AR建立了Java对象与数据库表逻辑上的直接映射,方便了程序的编写。而在MP中使用AR非常简单,只需让pojo类继承Model<>类即可。

    例:

    1. @Data
    2. @NoArgsConstructor
    3. @AllArgsConstructor
    4. @TableName("tb_user")
    5. public class User extends Model {
    6. //lombok注解自动为对象创建各种方法
    7. private String userName;
    8. private String name;
    9. private Integer age;
    10. @TableId(type = IdType.AUTO)//IdType主键类型,指定为自增长
    11. private Long id;
    12. @TableField(value = "email")//映射至表中不同命字段
    13. private String mail;
    14. @TableField(exist = false)//表中不存在
    15. private int power;
    16. @TableField(select = false)//查询命令不返回该字段值
    17. private String password;
    18. }

    测试:

    1. @RunWith(SpringJUnit4ClassRunner.class)
    2. @ContextConfiguration(locations = {"classpath*:applicationContext.xml"})
    3. public class test {
    4. //mapper不必再注入,但映射关系、配置类不能缺少,即UserMapper.java与applicationContext.xml的配置
    5. /*@Autowired
    6. private UserMapper mapper;*/
    7. @Test
    8. public void testSelectById(){
    9. User user = new User();
    10. user.setId(4L);
    11. //调用AR的按id查询
    12. User result = user.selectById();
    13. System.out.println(result);
    14. }
    15. @Test
    16. public void testInsert(){
    17. User user = new User();
    18. user.setUserName("diaochan");
    19. user.setPassword("123456");
    20. user.setAge(20);
    21. user.setName("貂蝉");
    22. user.setMail("diaochan@itcast.cn");
    23. // 调用AR的insert方法进行插入数据
    24. boolean result = user.insert();
    25. System.out.println(result);
    26. }
    27. @Test
    28. public void testUpdate(){
    29. User user = new User();
    30. user.setId(3L);// 查询条件
    31. user.setAge(31); // 更新的数据
    32. boolean result = user.updateById();
    33. System.out.println(result);
    34. }
    35. @Test public void testDelet() {
    36. User user = new User();
    37. user.setId(7L);
    38. boolean result = user.deleteById();
    39. System.out.println(result);
    40. }
    41. @Test public void testSelect() {
    42. User user = new User();
    43. QueryWrapper userQueryWrapper = new QueryWrapper<>();
    44. userQueryWrapper.le("age","20");
    45. //按条件查询
    46. List users = user.selectList(userQueryWrapper);
    47. for (User user1 : users) {
    48. System.out.println(user1);
    49. }
    50. }
    51. }

  • 相关阅读:
    嵌入式操作系统--成绩统计管理系统
    Python | eval、exec | 执行动态代码字符串
    【蜂鸟E203的FPGA验证】Chap.9 FPGA平台硬件验证
    小程序:下拉刷新+上拉加载+自定义导航栏
    python 炸敌人。
    Android网络通讯之Retrofit
    java中的BigDecimal使用
    gpu是什么和cpu的区别
    Html 后端了解基础
    C++:C++入门基础
  • 原文地址:https://blog.csdn.net/qq_57389269/article/details/126086669