Mybatis-plus AR

一:改造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 对应的方法,类似语法糖

计算机中添加的某种语法。这种语法对原本语言的功能没有任何的影响。封装,更方便的使用。
封装, 方便, 简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值