• Mybatis-Plus中的ActiveRecord


    ActiveRecord(简称AR)一直广受动态语言( PHP 、 Ruby 等)的喜爱,而 Java 作为准静态语言,对于ActiveRecord 往往只能感叹其优雅,但也进行了一定的支持。
    什么是ActiveRecord?
      ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。
      配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。
    ActiveRecord的主要思想是:
      每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;
      ActiveRecord 同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;
      ActiveRecord 是一种领域模型(Domain Model),封装了部分业务逻辑;

    开启AR之旅:在MP中,开启AR非常简单,只需要将实体对象继承Model<实体类>,并重写 pkVal 方法,方法返回主键。

    @Override
        protected Serializable pkVal() {
            return id;
        }

      1.根据主键查询

    @Test
        public void selectById() {
            User user = new User();
            user.setId(5L);
            User user2 = user.selectById();
            System.out.println(user2);
        }

      2.新增数据

    @Test
        public void testInsert(){
            User user = new User();
            user.setUserName("diaochan");
            user.setPassword("123456");
            user.setAge(20);
            user.setName("貂蝉");
    
            // 调用AR的insert方法进行插入数据
            boolean insert = user.insert();
            System.out.println("result => " + insert);
        }

      3.删除操作

    @Test
        public void testDelete(){
            User user = new User();
            user.setId(5L);
    
            boolean delete = user.deleteById();
            System.out.println("result => " + delete);
        }

      4.更新操作

    @Test
        public void testUpdate(){
            User user = new User();
            user.setId(10L);// 查询条件
            user.setAge(31); // 更新的数据
    
            boolean result = user.updateById();
            System.out.println("result => " + result);
        }

      5.根据条件查询

    @Test
        public void testSelect(){
            User user = new User();
    
            QueryWrapper<User> wrapper  = new QueryWrapper<>();
            wrapper.ge("age", 30); //大于等于30岁的用户查询出来
    
            List<User> users = user.selectList(wrapper);
            for (User user1 : users) {
                System.out.println(user1);
            }
        }
  • 相关阅读:
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    linux中的cd ..和cd -命令有什么区别?
    GCC使用
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12403551.html
Copyright © 2020-2023  润新知