Mapper代理开发——条件查询
+++++
根据某个字段查询信息
- 编写SQL语句:
<select id="selectId" resultType="brand">
select id
from tb_brand
where id=#{id};
</select>
tips:
- #{}:相当于占位符 ?,可以防止SQL注入 使用时机:传递参数
- ${}:用于拼SQL语句,不防SQL注入 使用时机:当表名或者列名不固定时可以用于切换,但不防SQL注入
- 特殊字符处理:
- 转义字符
- CDATA区:大写输入CD回车即可
条件查询
-
多条件查询
例:根据指定状态、公司和企业名称中包含某个名字的公司信息
-
接口部分(参数接收)
//1.散装参数:利用@Param("SQL参数占位符名称") 注解 进行输入值与Mapper配置文件中的SQL语句字段匹配 List<Brand> selectById(@Param("statused")int statused, @Param("companyName") String companyName, @Param("brandName") String brandName); //2.对象参数:对象属性名称要和SQL参数占位符名称一致 List<Brand> selectById(Brand brand) //3.map集合参数:map集合中,键名与SQL参数占位符的名称要一致 List<Brand> selectById(Map map)
-
Mapper.xml
<!-- 散装参数--> <!-- 对象参数--> <!-- Map集合参数--> <select id="selectId" resultMap="BrandresultMap"> select * from tb_brand where statused=#{statused} and company_name like #{companyName} and brand_name like #{brandName}; </select>
-
测试类部分
//都要先定义变量 int statused=1; String companyName = "华为"; String brandName = "华为"; // 散装参数 companyName = '%' + companyName + '%'; brandName = '%' + brandName + '%';
-