MyBatis条件查询

12 篇文章 0 订阅

单条件查询

用select查询数据时,如果需要用户传入的参数只有一个时,可以直接在接口代理方法中设置一个参数:
在这里插入图片描述
如上图的selectById(int id)方法,定义好方法后需要在对应的映射文件中写上对应的SQL语句
在这里插入图片描述
只需要将对应的参数名传入#{}中即可实现插入参数,还有一种方法是将#改成$,这两个的区别在于:$代表的是先拼接字符串,再对SQL进行编译,而#则是先预编译SQL语句,再传入参数的值,这样可以防止字符串拼接时的SQL注入问题,具体可看我的另一篇文章
JDBC解决SQL注入问题

多条件查询

当查询语句需要用户传入多个参数时,映射文件中的参数传入方式和上面一致
在这里插入图片描述
而在声明代理接口方法时,则有三种方法:

  • 散装参数传入:
    List<Brand> selectByParams(@Param("id")int id,@Param("companyName")String companyName);

在传入参数时需要在每一个参数前加上@Param修饰,且参数名须和映射文件参数名一致

  • 对象参数传入:
    List<Brand> selectByParams(Brand brand);

像这样以对象作为参数时,只需要在使用该方法时,将所有参数封装到一个实例对象中即可,必须保证对象属性名和映射文件参数名一致

  • Map参数传入:
	List<Brand> selectByParams(Map map);

传入一个封装所有参数的map对象,将键为参数名,必须保证键名在映射文件中的参数名一致


注意当编写SQL语句时,如果条件中出现<等符号,由于在xml文件中中<>表示标签,因此单个<符号会被认为是标签的左边界符,因此我们可以利用转义字符,对应符号的转义字符可上网查,还有一种方法可像这样
在这里插入图片描述

在需要写类似符号时,加上一个<![CDATA[]]>标签,并在中括号内填入你想要写的符号,这些符号会被自动转义

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值