關於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);
}
條件參數說明: