mybatisPlus 通用CRUD

關於application 配置什麼的就不說了 直接從mapper開始
mapper:

 * Mapper接口
 * 	
 * 基於Mybatis:  在Mapper接口中編寫CRUD相關的方法  提供Mapper接口所對應的SQL映射文件 以及 方法對應的SQL語句. 
 * 
 * 基於MP:  讓XxxMapper接口繼承 BaseMapper接口即可.
 * 		   BaseMapper<T> : 泛型指定的就是當前Mapper接口所操作的實體類類型 
 * 
 */
public interface EmployeeMapper extends BaseMapper<Employee> {
     
}

實體類:

package com.atguigu.mp.beans;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

/**
 * javaBean
 * 
 * 定義JavaBean中成員變量時所使用的類型: 
 * 	 因爲每個基本類型都有一個默認值:  
 * 	   int ==> 0
 * 	   boolean ==> false
 *
 */

/*
 * MybatisPlus會默認使用實體類的類名到數據中找對應的表. 
 * 
 */
//@TableName(value="tbl_employee")
public class Employee {
	/*
	 * @TableId:
	 * 	 value: 指定表中的主鍵列的列名, 如果實體屬性名與列名一致,可以省略不指定. 
	 *   type: 指定主鍵策略.
	 * @TableField:
	 *   value: 指定與表中那個字段相對應
	 * @TableField(exist=false):
	 *    忽略實體類中這個字段
	 */
	//@TableId(value="id" , type =IdType.AUTO)
	private Integer id ;   //  int 
	
	@TableField(value = "last_name")
	private String  lastName; 
	private String  email ;
	private Integer gender; 
	private Integer age ;
	
	@TableField(exist=false)
	private Double salary ; 
	
	public Double getSalary() {
		return salary;
	}
	public void setSalary(Double salary) {
		this.salary = salary;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Integer getGender() {
		return gender;
	}
	public void setGender(Integer gender) {
		this.gender = gender;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + ", age="
				+ age + "]";
	} 
	
	
}

查詢:

/**
	 * 通用 查詢操作
	 */
	@Test
	public void  testCommonSelect() {
		//1. 通過id查詢
//		Employee employee = employeeMapper.selectById(7);
//		System.out.println(employee);
		
		//2. 通過多個列進行查詢    id  +  lastName
//		Employee  employee = new Employee();
//		//employee.setId(7);
//		employee.setLastName("小澤老師");
//		employee.setGender(0);
//		
//		Employee result = employeeMapper.selectOne(employee);
//		System.out.println("result: " +result );
		
		
		//3. 通過多個id進行查詢    <foreach>
//		List<Integer> idList = new ArrayList<>();
//		idList.add(4);
//		idList.add(5);
//		idList.add(6);
//		idList.add(7);
//		List<Employee> emps = employeeMapper.selectBatchIds(idList);
//		System.out.println(emps);
		
		//4. 通過Map封裝條件查詢
//		Map<String,Object> columnMap = new HashMap<>();
//		columnMap.put("last_name", "Tom");
//		columnMap.put("gender", 1);
//		
//		List<Employee> emps = employeeMapper.selectByMap(columnMap);
//		System.out.println(emps);
		
		//5. 分頁查詢
		List<Employee> emps = employeeMapper.selectPage(new Page<>(3, 2), null);
		System.out.println(emps);
	}

刪除:

/**
	 * 通用 刪除操作
	 */
	@Test
	public void testCommonDelete() {
		//1 .根據id進行刪除
		Integer result = employeeMapper.deleteById(13);
		System.out.println("result: " + result );
		//2. 根據 條件進行刪除
//		Map<String,Object> columnMap = new HashMap<>();
//		columnMap.put("last_name", "MP");
//		columnMap.put("email", "[email protected]");
//		Integer result = employeeMapper.deleteByMap(columnMap);
//		System.out.println("result: " + result );
		
		//3. 批量刪除
//		List<Integer> idList = new ArrayList<>();
//		idList.add(3);
//		idList.add(4);
//		idList.add(5);
//		Integer result = employeeMapper.deleteBatchIds(idList);
//		System.out.println("result: " + result );
	}

update:

/**
	 * 通用 更新操作
	 */
	@Test
	public void testCommonUpdate() {
		//初始化修改對象
		Employee employee = new Employee();
		employee.setId(7);
		employee.setLastName("小澤老師");
		employee.setEmail("[email protected]");
		employee.setGender(0);
		//employee.setAge(33);
		
		//Integer result = employeeMapper.updateById(employee);
		Integer result = employeeMapper.updateAllColumnById(employee);
		
		System.out.println("result: " + result );
	}

insert:

/**
	 * 通用 插入操作
	 */
	@Test
	public void testCommonInsert() {
		
		//初始化Employee對象
		Employee employee  = new Employee();
		employee.setLastName("MP");
		employee.setEmail("[email protected]");
		//employee.setGender(1);
		//employee.setAge(22);
		employee.setSalary(20000.0);
		//插入到數據庫   
		// insert方法在插入時, 會根據實體類的每個屬性進行非空判斷,只有非空的屬性對應的字段纔會出現到SQL語句中
		//Integer result = employeeMapper.insert(employee);  
		
		//insertAllColumn方法在插入時, 不管屬性是否非空, 屬性所對應的字段都會出現到SQL語句中. 
		Integer result = employeeMapper.insertAllColumn(employee);
		
		System.out.println("result: " + result );
		
		//獲取當前數據在數據庫中的主鍵值
		Integer key = employee.getId();
		System.out.println("key:" + key );
	}

簡單的使用條件構造器:
delete:

/**
	 * 條件構造器  刪除操作
	 */
	@Test
	public void testEntityWrapperDelete() {
		
		employeeMapper.delete(
					new EntityWrapper<Employee>()
					.eq("last_name", "Tom")
					.eq("age", 22)
				);
	}

update:

/**
	 * 條件構造器  修改操作
	 */
	@Test
	public void testEntityWrapperUpdate() {
		
		Employee employee = new Employee();
		employee.setLastName("蒼老師");
		employee.setEmail("[email protected]");
		employee.setGender(0);
		
		
		employeeMapper.update(employee, 
					new EntityWrapper<Employee>()
					.eq("last_name", "Tom")
					.eq("age", 44)
					);
	}
	

select:

/**
	 * 條件構造器   查詢操作
	 */
	@Test
	public void testEntityWrapperSelect() {
		//我們需要分頁查詢tbl_employee表中,年齡在18~50之間且性別爲男且姓名爲Tom的所有用戶
		
//		List<Employee> emps =employeeMapper.selectPage(new Page<Employee>(1, 2),
//					new EntityWrapper<Employee>()
//					.between("age", 18, 50)
//					.eq("gender", 1)
//					.eq("last_name", "Tom")
//				);
//		System.out.println(emps);
	
		
		List<Employee > emps = employeeMapper.selectPage(
							new Page<Employee>(1,2), 
							Condition.create()
							.between("age", 18, 50)
							.eq("gender", "1")
							.eq("last_name", "Tom")
							
							);
		
		System.out.println(emps);		
		
		
		
		
		
		// 查詢tbl_employee表中, 性別爲女並且名字中帶有"老師" 或者  郵箱中帶有"a"
		
//		List<Employee> emps = employeeMapper.selectList(
//				new EntityWrapper<Employee>()
//				.eq("gender", 0)
//				.like("last_name", "老師")
//				//.or()    // SQL: (gender = ? AND last_name LIKE ? OR email LIKE ?)    
//				.orNew()   // SQL: (gender = ? AND last_name LIKE ?) OR (email LIKE ?) 
//				.like("email", "a")
//				);
//		System.out.println(emps);
		
		
		// 查詢性別爲女的, 根據age進行排序(asc/desc), 簡單分頁
		
//		List<Employee> emps  = employeeMapper.selectList(
//				new EntityWrapper<Employee>()
//				.eq("gender", 0)
//				.orderBy("age")
//				//.orderDesc(Arrays.asList(new String [] {"age"}))
//				.last("desc limit 1,3")
//				);
//		System.out.println(emps);
		
	}

條件參數說明:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章