zoukankan      html  css  js  c++  java
  • 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);
            }
        }
  • 相关阅读:
    POJ 2155 Matrix(二维树状数组)
    HDU 1280 前m大的数
    HDU 3183 A Magic Lamp(二维RMQ)
    HDU 3743 Frosh Week(归并排序求逆序数)
    POJ 2299 Ultra-QuickSort ( 归并排序 + 求逆序数 )
    HDU 1166 敌兵布阵(树状数组)
    HDU 2846 Repository(字典树)
    HDU 1896 Stones(优先队列)
    HDU 4393 Throw nails(优先队列)
    进程池
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12403551.html
Copyright © 2011-2022 走看看