博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle like 条件拼接
阅读量:5860 次
发布时间:2019-06-19

本文共 874 字,大约阅读时间需要 2 分钟。

(1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%'

(2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%'

(3) 解决方法是利用字符串连接的方式来构成sql语句 name like '%'||'#name#'||'%'

(4) 这样参数都会经过预编译,就不会发生sql注入问题了。

(5) #与$区别:

#xxx# 代表xxx是属性值,map里面的key或者是你的pojo对象里面的属性,ibatis会自动在它的外面加上引号,表现在sql语句是这样的 where xxx = 'xxx' ;

$xxx$ 则是把xxx作为字符串拼接到你的sql语句中, 比如 order by topicId , 语句这样写 ... order by #xxx#,ibatis 就会把他翻译成 order by 'topicId' (这样就会报错) 语句这样写 ... order by $xxx$ibatis 就会把他翻译成 order by topicId

 

SELECT *   FROM user  WHERE username like '%$username$%'  的安全写法
Sql代码 
SELECT *         FROM user        WHERE username like '%'  || #username# || '%'  
SELECT * FROM user WHERE username like '%' || #username# || '%'

 

 

 

==============================

select d.DRUG_ID,d.DRUG_NAME,d.EXTRACT,dd.SUMMARY from DRUG_BASE_INFO d

left join drug_dev_profile dd on d.drug_id=dd.drug_id
where dd.summary like '%'||d.EXTRACT||'%'

转载地址:http://ljrjx.baihongyu.com/

你可能感兴趣的文章
python大佬养成计划----win下对数据库的操作
查看>>
前端每日实战:125# 视频演示如何用纯 CSS 创作一个失落的人独自行走的动画...
查看>>
聊聊spring-data-redis的连接池的校验
查看>>
Swoole 源码分析——基础模块之Queue队列
查看>>
Nginx实践篇(4)- Nginx代理服务 - 正向代理和反向代理
查看>>
从0开发豆果美食小程序——项目搭建
查看>>
【译】WebSocket协议第二章——一致性要求(Conformance Requirements)
查看>>
Sublime Text3全局搜索/在文件夹中查找默认排除node_modules目录,Sublime小技巧——吕江民·敬上...
查看>>
Struts 入门 2
查看>>
Java™ 教程(运算符)
查看>>
React Event 实现原理
查看>>
在linux下合并磁盘
查看>>
WEB安全Permeate漏洞靶场挖掘实践
查看>>
JavaScript工作原理(七):Web Workers的构建快和5种使用场景
查看>>
win10+vscode部署java开发环境
查看>>
「报表案例分享」数据上报+分析助力实现精准扶贫
查看>>
vue — 组件间通信
查看>>
ES6学习-Module
查看>>
高性能配置管理中心 duic
查看>>
vue-cli 3.x配置使用vux
查看>>