天天看點

MyBatisPlus學習筆記(二)ActiveRecord(活動記錄)MyBatisPlus學習筆記(二)ActiveRecord(活動記錄)

MyBatisPlus學習筆記(二)ActiveRecord(活動記錄)

文章目錄

  • MyBatisPlus學習筆記(二)ActiveRecord(活動記錄)
      • 了解ActiveRecord
      • 部署使用
      • 基本CRUD
        • insert
        • update
        • select
        • delete
      • 總結

了解ActiveRecord

  • Active Record(活動記錄),是一種領域模型模式,特點是一個模型類對應關系型資料庫中的一個表,而模型類的一個執行個體對應表中的一行記錄。
  • AR 模式提供了一種更加便捷的方式實作 CRUD 操作,其本質還是調用的 Mybatis 對應的方法,類似于文法糖
  • 文法糖是指計算機語言中添加的某種文法,這種文法對原本語言的功能并沒有影響,可以更友善開發者使用,可以避免出錯的機會,讓程式可讀性更好.

部署使用

  • 隻需要讓實體類直接繼承 Model 類且實作主鍵指定的方法即可。
  • 示例
    public class Employee extends Model<Employee>{
        // ..fields
        // ..getter and setter
    	
    	@Override
    	protected Serializable pkVal() {
    		return this.id;
    	}
    }
               
  • pkVal() 即是傳回的主鍵值,必須使用此方法

基本CRUD

insert

public void insertAR() {
    Employee employee = new Employee();
    employee.setLastName("qazx");
    employee.setAge(44);
    employee.setEmail("[email protected]");
    boolean insert = employee.insert();
    System.out.println("操作是否成功:"+insert);
}
           

update

public void updateAR() {
	Employee employee = new Employee();
	employee.setLastName("qqzx");
	employee.setAge(24);
	employee.setGender(1);
	/*
	employee.setId(18);
	boolean updateById = employee.updateById();
	// UPDATE tbl_employee SET last_name=?, gender=?, age=? WHERE id=?
	System.out.println("操作是否成功:"+updateById);
	*/
	boolean update = employee.update(new EntityWrapper<Employee>()
			.eq("last_name", "qqq"));
	// UPDATE tbl_employee SET last_name=?, gender=?, age=? WHERE (last_name = ?)
	System.out.println("操作是否成功:"+update);
}
           

select

public void selectAR() {
	Employee employee = new Employee();
	employee.setLastName("qazx");
	List<Employee> list = employee.selectList(new EntityWrapper<>().eq("last_name", "qazx"));
	// SELECT id,last_name AS lastName,email,gender,age FROM tbl_employee WHERE (last_name = ?)
	for (Employee employee2 : list) {
		System.out.println(employee2);
	}
}
           

delete

public void deleteAR() {
	Employee employee = new Employee();
	boolean delete = employee.delete(new EntityWrapper<Employee>().like("last_name", "ef"));
	// DELETE FROM tbl_employee WHERE (last_name LIKE ?)  %ef%
	System.out.println("操作是否成功:"+delete);
}
           

總結

  1. 想要使用ActiveRecord(活動記錄),隻要實體類繼承Model類,再實作pkVal() 方法即可。
  2. 使用方法和mybatisPlus中提供的方法類似,主要使用條件構造器。