Myabtis学习
多条件查询三种方式
前言
大学时,学习大多以理论为主,教师上课也不会讲的很细,现在工作之后用到的一些技术和框架我一般会在b站找学习教程,笔者用到最多的教程是黑马。
一、什么是多条件查询?
当查询时所需要的参数多于一个时,这种情况下Mybatis有三种方式。
二、三种方法使用步骤
三种方式进行查询,sql都是一样的。
BrandMapper.xml
<select id="selectByCondition" resultMap="brandResultMap">
select *
from tb_brand
where
status = #{status}
and brand_name like #{brandName}
and company_name like #{companyName}
</select>
1.散装参数
Brandmapper.java 代码如下(示例):
需要使用@Param注解
List<Brand> selectByCondition(@Param("status") int status,
@Param("brandName") String brandName,
@Param("companyName") String companyName);
测试代码,对参数赋值,再调用方法
int status = 1;
String companyName = "%华为%";
String brandName = "%华为%";
List<Brand> brands = brandMapper.selectByCondition(status,brandName,companyName);
2.实体类封装参数
Brandmapper.java 代码如下(示例):
传递参数和返回值都是Brand类型
需要SQL参数名和实体类属性名对应
List<Brand> selectByCondition(Brand brand);
测试代码,对参数赋值,封装对象,再调用方法
int status = 1;
String companyName = "%华为%";
String brandName = "%华为%";
//封装对象
Brand brand = new Brand();
brand.setStatus(status);
brand.setBrandName(brandName);
brand.setCompanyName(companyName);
//调用方法
List<Brand> brands = brandMapper.selectByCondition(brand);
2.map集合
Brandmapper.java 代码如下(示例):
传递参数是map
需要SQL参数名和map集合键值对应
List<Brand> selectByCondition(Map map);
测试代码,对参数赋值,讲属性名和值放在map集合中,再调用方法
int status = 1;
String companyName = "%华为%";
String brandName = "%华为%";
Map map = new HashMap();
map.put("status",status);
map.put("companyName",companyName);
map.put("brandName",brandName);
List<Brand> brands = brandMapper.selectByCondition(map);
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Mybatis多条件查询的方法,是笔者学习黑马教程后所作笔记。