Mybatis培训教程

7. 动态SQL与模糊查询

7.1. 提出需求:

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

7.2. 准备数据表和数据:

create table d_user(  

id int primary key auto_increment,  

name varchar(10),

age int(3)

);

 

insert into d_user(name,age) values(‘Tom’,12);  

insert into d_user(name,age) values(‘Bob’,13);  

insert into d_user(name,age) values(‘Jack’,18);

7.3. ConditionUser(查询条件实体类)

private String name;

private int minAge;

private int maxAge;

 

7.4. User(表实体类)

private int id;

private String name;

private int age;

 

7.5. userMapper.xml(映射文件)

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<!DOCTYPE mapper PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN”

“http://mybatis.org/dtd/mybatis-3-mapper.dtd”>

<mapper namespace=”com.atguigu.day03_mybatis.test6.userMapper”>

<select id=”getUser” parameterType=”com.atguigu.day03_mybatis.test6.ConditionUser” resultType=”com.atguigu.day03_mybatis.test6.User”>

select * from d_user where age>=#{minAge} and age<=#{maxAge}

<if test=’name!=”%null%”‘>and name like #{name}</if>

</select>

</mapper>

 

7.6. UserTest(测试)

public class UserTest {

 

public static void main(String[] args) throws IOException {

Reader reader = Resources.getResourceAsReader(“conf.xml”);

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

SqlSession sqlSession = sessionFactory.openSession();

String statement = “com.atguigu.day03_mybatis.test6.userMapper.getUser”;

List<User> list = sqlSession.selectList(statement, new ConditionUser(“%a%”, 1, 12));

System.out.println(list);

}

}

 

MyBatis中可用的动态SQL标签

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。

 


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)