天天看點

MybatisPlus --- ActiveRecord(活動記錄)MybatisPlus — ActiveRecord(活動記錄)

MybatisPlus — ActiveRecord(活動記錄)

>> 上一篇我們講到MybatisPlus中使用條件構造器—EntityWrapperMybatis Plus — 條件構造器

>> 這一篇主要來介紹MybatisPlus中使用ActiveRecord(活動記錄)

了解:

  • Active Record(活動記錄),是一種領域模型模式,特點是一個模型類對應關系型資料庫中的 一個表,而模型類的一個執行個體對應表中的一行記錄。
  • ActiveRecord 一直廣受動态語言( PHP 、 Ruby 等)的喜愛,而 Java 作為準靜态語言, 對于 ActiveRecord 往往隻能感歎其優雅,是以 MP 也在 AR 道路上進行了一定的探索

使用AR模式

  • 1)僅僅需要讓實體類繼承 Model 類且實作主鍵指定方法
    MybatisPlus --- ActiveRecord(活動記錄)MybatisPlus — ActiveRecord(活動記錄)

AR 基本 CRUD

  • 1) 插入操作
    public boolean insert()
    /**
     * AR  插入操作
     */
    @Test
    public void  testARInsert() {
    	Employee employee = new Employee();
    	employee.setLastName("ccc");
    	employee.setEmail("[email protected]");
    	employee.setGender(1);
    	boolean result = employee.insert();		//直接通過執行個體調用方法
    	System.out.println("result:" +result );
    }
               
  • 2)修改操作
    public boolean updateById()
    /**
     * AR 修改操作
     */
    @Test
    public void testARUpdate() {
    	Employee employee = new Employee();
    	employee.setId(2);
    	employee.setLastName("tom");
    	employee.setEmail("[email protected]");
    	employee.setGender(1);
    	boolean result = employee.updateById();
    	System.out.println("result:" +result );
    }
               
  • 3)删除操作

    public boolean deleteById()

    public boolean deleteById(Serializable id)

    public boolean delete(Wrapper wrapper)

    /**
     * AR 删除操作
     * 
     * 注意: 删除不存在的資料 邏輯上也是屬于成功的. 
     */
    @Test
    public void testARDelete() {
    	
    	Employee employee = new Employee();
    	
    	boolean result = employee.deleteById(2);
    	System.out.println(result);
    	
    	employee.setId(2);
    	boolean result1 = employee.deleteById();
    	System.out.println(result1);
    	
    	boolean result2 = employee.delete(new EntityWrapper<Employee>().like("last_name", "c"));
    	System.out.println(result2);
    }
               
  • 4)查詢操作

    public T selectById()

    public T selectById(Serializable id)

    public List selectAll()

    public List selectList(Wrapper wrapper)

    public int selectCount(Wrapper wrapper)

    /**
     * AR 查詢操作
     */
    @Test
    public void testARSelect() {
    	
    	Employee employee = new Employee();
    	
    	Employee result1 = employee.selectById(14);
    	System.out.println(result1);
    	
    	employee.setId(2);
    	Employee result = employee.selectById();
    	System.out.println(result);
    	
    	List<Employee> emps = employee.selectAll();
    	System.out.println(emps);
    	
    	List<Employee > employees= employee.selectList(new EntityWrapper<Employee>().like("last_name", "c"));
    	System.out.println(employees);
    	
    	Integer result2 = employee.selectCount(new EntityWrapper<Employee>().eq("gender", 0));
    	System.out.println("result: " +result2);
    }
               
  • 5)分頁複雜操作
    public Page selectPage(Page page, Wrapper wrapper)
    /**
     * AR  分頁複雜操作
     */
    @Test
    public void  testARPage() {
    	
    	Employee employee = new Employee();
    	
    	Page<Employee> page = employee.selectPage(new Page<Employee>(1, 1),
    			new EntityWrapper<Employee>().like("last_name", "c"));
    	List<Employee> emps = page.getRecords();
    	System.out.println(emps);
    }
               

小結

AR 模式提供了一種更加便捷的方式實作 CRUD 操作,其本質還是調用的 Mybatis 對 應的方法,類似于文法糖,文法糖是指計算機語言中添加的某種文法,這種文法對原本語言的功能并沒有影響. 可以更友善開發者使用,可以避免出錯的機會,讓程式可讀性更好.

END…

以上便是MybatisPlus中使用ActiveRecord(活動記錄),歡迎參考使用…

繼續閱讀