MyBatis-Plus学习-part4 使用条件构造器Wrapper等

条件构造器

MP通过EntityWrapper(简称EW,MP封装的一个查询条件构造器 )或者Condition(与EW类似)来让用户自由的构建查询条件,简便快捷,没有额外的负担。

条件参数

https://baomidou.com/guide/wrapper.html#abstractwrapper

allEq ,eq,ne,gt,ge,lt ,le
between, notBetween,like,

notLike:

notLike("name", "王")--->name not like '%王%'

likeLeft:

likeLeft("name", "王")--->name like '%王'

likeRight:

likeRight("name", "王")--->name like '王%'

isNull, isNotNull
in, notIn
inSql

inSql("id", "select id from table where id < 3")--->id in (select id from table where id < 3)

notInSql

notInSql("id", "select id from table where id < 3")--->id not in (select id from table where id < 3)

groupBy,orderByAsc,orderByDesc,orderBy

having
在这里插入图片描述

func在这里插入图片描述
or ,and

nested
在这里插入图片描述

apply

在这里插入图片描述
last

在这里插入图片描述
exists , notExists

查找

@Test 
	public void testEntiytWrapperSelect1() {
		EntityWrapper<Employee> wrapper = new EntityWrapper<Employee>();
		wrapper.between("age", 10, 35).eq("gender", 1).eq("last_name", "Jerry");
		List<Employee> employees = employeeMapper.selectPage(new Page<Employee>(1,2), wrapper);
		employees.forEach(System.out::println);
	}
	
	@Test 
	public void testEntiytWrapperSelect2() {
		EntityWrapper<Employee> wrapper = new EntityWrapper<Employee>();
		//SQL: (gender = ? AND last_name LIKE ? OR email LIKE ?)
		wrapper.eq("gender", 0).like("last_name", "J").or().like("email", "gmail");
		List<Employee> employees = employeeMapper.selectList(wrapper);
		employees.forEach(System.out::println);
	}
	@Test 
	public void testEntiytWrapperSelect3() {
		EntityWrapper<Employee> wrapper = new EntityWrapper<Employee>();
		//SQL: (gender = ? AND last_name LIKE ?) OR (email LIKE ?)
		wrapper.eq("gender", 0).like("last_name", "J").orNew().like("email", "gmail");
		List<Employee> employees = employeeMapper.selectList(wrapper);
		employees.forEach(System.out::println);
	}

更新

@Test
	public void testEntityWrapperUpdate1() {
		Employee employee = new Employee();
		employee.setLastName("KhanKing");
		employee.setAge(999);
		EntityWrapper<Employee> wrapper = new EntityWrapper<Employee>();
		wrapper.eq("last_name", "Khan").eq("age", 8);
		employeeMapper.update(employee, wrapper);
	}	

删除

@Test
	public void testEntityWrapperDelete1() {
		
		EntityWrapper<Employee> wrapper = new EntityWrapper<Employee>();
		wrapper.eq("last_name", "Khan").eq("age", 88);
		employeeMapper.delete(wrapper);
	}

last以及排序

	@Test
	public void testEntitySelect1() {
		List<Employee> list = employeeMapper.selectList(
				new EntityWrapper<Employee>()
				.eq("gender", 0)
				.orderBy("age")
				.last("desc") //默认是升序
				);
		list.forEach(System.out::println);
	}

查找降序

	@Test
	public void testEntitySelect2() {
		List<Employee> list = employeeMapper.selectList(
				new EntityWrapper<Employee>()
				.eq("gender", 0)
				.orderDesc(Arrays.asList(new String[]{"age"}))
				);
		list.forEach(System.out::println);
	}

使用Condition

	@Test
	public void testEntityWrapperSelectByCondition1() {
		List<Employee> emps = employeeMapper.selectPage(
				new Page<Employee>(1,2), 
				Condition.create()
				.between("age", 10, 55)
				.eq("gender", 1)
				.like("last_name", "i")
				);
		emps.forEach(System.out::println);
	}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值