一:改造bean
public class Employee extends Model<Employee> {
private Integer id ; // int
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 + "]";
}
/**
* 指定当前实体类的主键属性
*/
@Override
protected Serializable pkVal() {
return id;
}
}
主要的操作,继承Model 泛型 重写方法。
二:插入操作
/**
* AR 插入操作
*/
@Test
public void testARInsert() {
Employee employee = new Employee();
employee.setLastName("宋老师");
employee.setEmail("sls@xinlang.com");
employee.setGender(1);
employee.setAge(35);
boolean result = employee.insert();
System.out.println("result:" +result );
}
主要就是插入的时候用的是model本身的方法了。自己new 自己做数据库操作。
这些调用的方法和通用的CRUD都是类似的,只不过调用的对象变了。
三:更新操作
/**
* AR 修改操作
*/
@Test
public void testARUpdate() {
Employee employee = new Employee();
employee.setId(20);
employee.setLastName("宋老");
employee.setEmail("sls@baidu.com");
employee.setGender(1);
employee.setAge(36);
boolean result = employee.updateById();
System.out.println("result:" +result );
}
以此类推,方法很多
四:查询操作
/**
* AR 查询操作
*/
@Test
public void testARSelect() {
Employee employee = new Employee();
//Employee result = employee.selectById(14);//第一种原来的方式
// employee.setId(14);//第二种先赋值的方式
// Employee result = employee.selectById();
// System.out.println(result );
四-2:查询所有数据
// List<Employee> emps = employee.selectAll();
// System.out.println(emps);
四-3 根据条件查所有数据
// List<Employee > emps=
// employee.selectList(new EntityWrapper<Employee>().like("last_name", "老师"));
// System.out.println(emps);
四-4 根据条件统计数量
Integer result = employee.selectCount(new EntityWrapper<Employee>().eq("gender", 0));
System.out.println("result: " +result );
五: AR的删除
/**
* AR 删除操作
*
* 注意: 删除不存在的数据 逻辑上也是属于成功的.
*/
@Test
public void testARDelete() {
Employee employee = new Employee();
//boolean result = employee.deleteById(2);
常规的删除方式
五-2:第二种和查询的第二种一样
employee.setId(2);
// boolean result = employee.deleteById();
// System.out.println("result:" +result );
如果没有删除成功,也就是id已经删除了。第二次删除也是成功的,只不过没有。
五-3 根据条件删除
boolean result = employee.delete(new EntityWrapper<Employee>().like("last_name", "小"));
System.out.println(result );
五-4 分页查询
/**
* AR 分页复杂操作
*/
@Test
public void testARPage() {
Employee employee = new Employee();
Page<Employee> page = employee.selectPage(new Page<>(1, 1),
new EntityWrapper<Employee>().like("last_name", "老"));
List<Employee> emps = page.getRecords();
System.out.println(emps);
}
注意返回的对象是Page对象,需要获取记录
这种模式是更便捷的调用方式
本质还是调用mybatis 对应的方法,类似语法糖
计算机中添加的某种语法。这种语法对原本语言的功能没有任何的影响。封装,更方便的使用。
封装, 方便, 简洁。
Mybatis-plus AR
最新推荐文章于 2024-04-26 17:28:14 发布