软件测试学习笔记丨 MyBatis 多条件查询和模糊查询
本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30541
一,多条件查询
1.1 方案一: 使用 arg 或者 param 参数配置
#{arg0}-#{argn}获取参数
#{param1}-#{paramn}获取参数
arg 从 0 开始, param 参数从 1 开始
1.2 方案二:使用注解,引入 @Param() 注解获取参数
定义接口注解传参 @Param
xml 文件对应配置
1.3 方案三: 使用 pojo(实体类)对象传递参数(推荐)
定义接口方法传参为实体类对象
xml 文件对应配置
测试代码
二,模糊查询
2.1 方案一:参数传入使用 %
新建接口方法
xml 文件配置
测试
总结
#{}是 占位符,
引用值的时候会自动帮我们替换 sql 语句中对应的’,所以无需手动添加单引号
参数传入使用 %,如:“%123%” 获取参数
注意:传入的参数必须是 %包含,代表模糊查询
2.2 方案二:使用 ${}进行模糊查询
使用 ${}进行模糊查询
对应 SQL 语句’单引号不可以省略
参数 parameterType 为基本数据类型或 string 对应{}内的值只能是 value 名称,不可以随便命名
xml 文件配置
#{} ${}区别
不同点:
#{}表示一个占位符号实现 preparedStatement 向占位符中设置值,自动进行 Java 类型和 JDBC 类型转换有效防止 sql 注入 parameterType 为基本数据类型/string,#{}括号中 名称随便写
preparedStatement 预编译对象,可以防止 sql 注入;Java 类型为实体中属性类型;JDBC 类型为表中字段类型
${} 表示拼接 sql 串将 parameterType 传入的内容拼接在 sql 中,不进行 JDBC 类型转换会出现 sql 注入 parameterType 为基本数据类型/string,${}括号中 名称只能是 value
相同点:
都可以接收 pojo 属性值,对应填入括号内{}名称为实体类属性值名
软件测试开发免费视频教程分享
![](https://static001.geekbang.org/infoq/f4/f4dab65b38c8389c620ac515affbc0cc.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/73c930e6021bb98f9076d936a】。文章转载请联系作者。
评论