一、Mybatis的模糊查询集合参数
1、多条件模糊查询
1.1多参数查询
(1)在EmployeeDao的数据访问接口中新增多条件查询方法
/**
* 使用姓名、性别进行多条件查询
* @param name
* @param sex
* @return
*/
public List<Employee> queryList(String name,String sex);
(2)在EmployeeMapper.xml文件中更新配置,
<!--多条件查询-->
<!--两个参数,通过用户名称和性别进行模糊查询,名称模糊查询-->
<select id="queryList" resultType="com.lss.bean.Employee">
<!-- #{}默认采用预处理方式去处理Sql语句 -->
<!-- ${}默认采用 非预处理方式去处理数据 -->
select * from employee where ename like '${param1}%' and esex = #{param2}
</select>
其中要注意的是:
#{}默认采用的是预编译的处理方式去处理SQL语句
${}默认采用的是非预编译的处理方式去处理SQL语句
(3)在测试类中进行测试
@Test
public void queryList(){
// 调用方法得到员工对象集合
List<Employee> employeeList = employeeDao.queryList("克","男");
//遍历输出
for(Employee employee: employeeList){
System.out.println(employee.getEid()+"\t"+employee.geteName()+"\t"+employee.geteAge()+"\t"+employee.geteSex()+"\t"+employee.getePass()+"\t"+employee.geteAddr());
}
}
1.2在接口中使用注解,给参数起别名
/**
* 使用姓名、性别进行多条件查询
* @param name
* @param sex
* @return
*/
public List<Employee> queryList1(@Param("name")String name,@Param("sex")String sex);
<!--使用起别名的方式进行查询-->
<select id="queryList1" resultType="com.lss.bean.Employee">
select * from employee where ename like '%${name}%' and esex = #{sex}
</select>
@Test
public void queryList1(){
// 调用方法得到员工对象集合
List<Employee> employeeList = employeeDao.queryList1("哈","男");
//遍历输出
for(Employee employee: employeeList){
System.out.println(employee.getEid()+"\t"+employee.geteName()+"\t"+employee.geteAge()+"\t"+employee.geteSex()+"\t"+employee.getePass()+"\t"+employee.geteAddr());
}
}
1.3使用Map容器传参数进行查询
/**
* 多条件查询
* @param map 查询参数集合
* @return 员工对象集合
*/
public List<Employee> queryList3(Map map);
<!--使用Map容器传参数-->
<select id="queryList3" resultType="com.lss.bean.Employee">
select * from employee where ename like '%${name}%' and esex = #{sex}
</select>
@Test
public void queryList3(){
Map<String,String> map = new HashMap<>();
map.put("name","哈");