mybatis-plus提供支持ActiveRecord模式


mybatis-plus提供支持ActiveRecord模式

 

  在Mybatis-Plus中提供了ActiveRecord的模式,支持 ActiveRecord 形式調用,實體類只需繼承 Model 類即可實現基本 CRUD 操作,簡單來說就是一個實體類繼承Model類,並通過注解與數據庫的表名進行關聯,這樣就可以通過實體類直接進行表的簡單增刪改查操作,這樣也確實極大的方便了開發人員。

 

原理理解:

       簡單來說Mybatis-plus是基於Mybatis的基礎之上進行開發的,其基本操作還是一個Mapper操作中對應一條sql語句,通過參數和返回值來處理sql語句的執行結果。那樣我們可以理解Mybatis-Plus的ActiveRecord其實就是Mybatis-Plus給我們提供一些簡單的增刪改查操作SQl語句的自動生成操作,在Mybatis提供的BaseMapper中默認提供了一些簡單增刪改查操作,其通過自動生成sql來初始化Mybatis的一些操作,其最終實現和我們直接基於Mybatis開發是一致的。

 

具體實現:

實體繼承Model類,以及加上@EqualsAndHashCode(callSuper = false)注解,不調用父類euqals和hashCode方法;

@Data
@EqualsAndHashCode(callSuper = false)
public class Department extends Model<Department>

CRUD demo案例:

package com.java1234;
 
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.java1234.entity.Department;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
 
import java.util.List;
 
 
/**
 * @author java1234_小鋒
 * @site www.java1234.com
 * @company Java知識分享網
 * @create 2020-08-22 17:07
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class ActiveRecordTest {
 
 
    @Test
    public void insert(){
        Department department=new Department();
        department.setName("xx部門");
        department.setRemark("xxx");
        boolean insert = department.insert();
        System.out.println(insert);
    }
 
    @Test
    public void updateById(){
        Department department=new Department();
        department.setId(7);
        department.setName("xx部門2");
        department.setRemark("xxx2");
        boolean b = department.updateById();
        System.out.println(b);
    }
 
    @Test
    public void insertOrUpdate(){
        Department department=new Department();
        department.setId(8);
        department.setName("xx部門2");
        department.setRemark("xxx2");
        boolean b = department.insertOrUpdate();
        System.out.println(b);
    }
 
    @Test
    public void deleteById(){
        Department department=new Department();
        department.setId(7);
        boolean b = department.deleteById();
        System.out.println(b);
    }
 
    @Test
    public void selectById(){
        Department department=new Department();
        //Department d = department.selectById(1);  // 方式一
        department.setId(1);  // 方式二
        Department d = department.selectById();
        System.out.println(d);
    }
 
    @Test
    public void selectAll(){
        Department department=new Department();
        List<Department> departmentList = department.selectAll();
        System.out.println(departmentList);
    }
 
    @Test
    public void selectListByQueryMapper(){
        QueryWrapper<Department> queryWrapper=new QueryWrapper();
        // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query();
        queryWrapper.like("name","測試");
        Department department=new Department();
        List<Department> departmentList = department.selectList(queryWrapper);
        System.out.println(departmentList);
    }
 
 
 
}

 

 

------------------------------------------------------------------------------------------------------------------------------

作者: java1234_小鋒

出處:https://www.cnblogs.com/java688/p/13672107.html

版權:本站使用「CC BY 4.0」創作共享協議,轉載請在文章明顯位置注明作者及出處。

------------------------------------------------------------------------------------------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM