mybatis 之 动态SQL查询
目录:
首先创建数据库:
然后创建实体类:
package com.wfl.mybatis.bean6;
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
------------------
package com.wfl.mybatis.bean6;
public class ConditionUser {
private String name;
private int minAge;
private int maxAge;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMinAge() {
return minAge;
}
public void setMinAge(int minAge) {
this.minAge = minAge;
}
public int getMaxAge() {
return maxAge;
}
public void setMaxAge(int maxAge) {
this.maxAge = maxAge;
}
@Override
public String toString() {
return "ConditionUser [name=" + name + ", minAge=" + minAge + ", maxAge=" + maxAge + "]";
}
public ConditionUser(String name, int minAge, int maxAge) {
super();
this.name = name;
this.minAge = minAge;
this.maxAge = maxAge;
}
}
------------
重要的是配置文件:
<?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.wfl.mybatis.service6.classMapper">
<!-- 参数类型是ConditionUse类,类里面有最小值和最大值! -->
<select id="getUser" parameterType="com.wfl.mybatis.bean6.ConditionUser"
resultType="com.wfl.mybatis.bean6.User">
<!-- 用了转义字符把>和<替换掉;小于符号是 < 大于符号是> -->
select * from d_user where age>=#{minAge} and age<=#{maxAge}
<!-- 模糊查询,先判断是否为空,后面是非空情况下模糊查询! -->
<if test='name!="%null%"'>and name like#{name}</if>
</select>
</mapper>
----------------------------
去conf.xml文件注册,然后是测试类:
package com.wfl.mybatis.service6;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.wfl.mybatis.bean6.ConditionUser;
import com.wfl.mybatis.bean6.User;
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();
//配置文件中的sql语句
String statement="com.wfl.mybatis.service6.classMapper.getUser";
//执行sql语句,得到返回结果
List<User> list=sqlSession.selectList(statement, new ConditionUser("%a%",1,17));
System.out.println(list);
}
}