MyBatis下动态语句使用like进行模糊查询
2016-02-24 01:19
716 查看
运用场景
在MyBatis的 xml 文件中的动态语句中使用 like 关键字,进行模糊查询使用注意
区分 MyBatis 下#{参数},${参数}两者解析参数的不同<!-- #{参数}是将参数解析成字符串, 代码中userName是Operation的字段,假设设置userName= "Smith", 解析成SQL: select * from h_saller_operation o where o.t_op_username= "Smith" --> <select id="qryOperatonInfo" parameterType="com.palmshe.bean.Operation"> select * from h_saller_operation o where o.t_op_username = #{userName} </select> <!-- ${参数}是将参数解析字符代码, 代码中userName是Operation的字段,假设设置userName= "Smith", 解析成SQL: select * from h_saller_operation o where o.t_op_username like '%Smith%' --> <select id="qryOperatonInfo" parameterType="com.palmshe.bean.Operation"> select * from h_saller_operation o where o.t_op_username like '%${userName}%' </select>
#{参数}能有效防止 SQL 注入,${参数}会有注入风险
Oracle常用模糊查询
<!-- %匹配0个或者多个字符 --> select * from h_saller_operation o where o.t_op_username like '%李雷%' <!-- _匹配一个字符 --> select * from h_saller_operation o where o.t_op_username like '_李雷_' <!-- 正则模糊查询--> select * from h_saller_operation o where regexp_like( o.t_op_code, '1[0-9]{4}60')
相关文章推荐
- kidd风的IOS日志之iOS开发多线程篇—多线程简单介绍
- uvaoj-12096:the setstack computer
- android xml点击交互
- VISUALSVN安装及客户端使用
- 大型数据库设计原则
- 欢迎使用CSDN-markdown编辑器
- PHP之类补充
- 导航条
- Linux 连续执行多条命令
- 机器学习实战——决策树
- iOS 开发 -- Swift 语法篇 (六) 集合
- HDOJ 1087 Super Jumping! Jumping! Jumping!(DP)
- 问卷调查
- 差分约束整理
- 数据库索引的设计原则
- 【HDU 4602】Partition
- Request.Form[""]学习过程中遇到的异常问题
- 修改MFC窗口标题和图标
- leetcode 290: Word Pattern
- 【Android】沉浸式状态栏的两种实现方式