Mybatis学习笔记-动态SQL与模糊查询

需求:实现多条件查询用户(姓名模糊匹配, 年龄在指定的最小值到最大值之间)

User.java实体类

public class User {
	private int id;
	private String name;
	private int age;
	//...
}


ConditionUser.java

public class ConditionUser {
	private String name;
	private int minAge;
	private int maxAge;
	//...
}
	<!-- 
	实现多条件查询用户(姓名模糊匹配, 年龄在指定的最小值到最大值之间)
	类似jstl表达式
	 -->
	<select id="getUser" parameterType="com.mybatis.test05.ConditionUser" resultType="com.mybatis.test05.User">
		select * from d_user where 
		
		<if test='name != "%null%"'>
			 name like #{name} and 
		</if>
		
		age between #{minAge} and #{maxAge}
	</select>

测试

SqlSessionFactory factory = MybatisUtil.getFactory();
SqlSession session = factory.openSession();
String statement = "com.mybatis.test05.userMapper.getUser";
String name = "o";
name = null;
ConditionUser parameter = new ConditionUser("%"+name+"%", 13, 18);
List<User> list = session.selectList(statement, parameter);
System.out.println(list);
session.close();


MyBatis中可用的动态SQL标签

if

choose (when otherwise)

trim (where set)

foreach

本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1559302

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值