Mybatis学习笔记 3:Mybatis 多种条件查询

这篇文章基于上一篇文章的例子

完整代码在这

Mybatis 多种条件查询和简单查询差别不是很大,更改xml映射文件就可以了。

一、模糊查询

模糊查询使用like,在配置文件中新建一个select标签,根据Sql语法规则构建好查询语句。

<select id="likeSearch" parameterType="String" resultType="User">
		select * from user where user_name like concat('%',#{0},'%')
</select>
复制代码

在这里要注意,要查询的子串和正则表达式之间的连接要使用concat函数连接,否则会报错。

测试代码:

List<User> lu = session.selectList("likeSearch", "d");
for (User u : lu) {
    System.out.println(u.getUser_name());
    System.out.println(u.getUser_id());
    System.out.println(u.getUser_phone());
    System.out.println("------------------------");
}
复制代码

运行结果:

二、多条件查询

多条件查询就是构建查询语句时跟上一个and就可以了

	<select id="multiSearch" parameterType="User" resultType="User">
		select * from user where user_name like concat('%', #{user_name}, '%') and user_id like concat('%', #{user_id}, '%')
	</select>
复制代码

在这里传递参数给Mybatis时参数类型可以写User类型,或者使用map类型

测试代码:

User u2 = new User();
u2.setUser_name("v");
u2.setUser_id("1");
List<User> lu = session.selectList("multiSearch", u2);

for (User u : lu) {
    System.out.println(u.getUser_name());
    System.out.println(u.getUser_id());
    System.out.println(u.getUser_phone());
    System.out.println("------------------------")
}
复制代码

运行结果:

猜你喜欢

转载自juejin.im/post/5c6565b2f265da2de33f0d51
今日推荐