#{}和${}的区别及什么情况下必须使用${}
2018-02-24 22:33
323 查看
一、两者区别。
#{}:表示占位符,如果获取简单类型,#{}中可以使用value也可以使用其他名称;可以有效防止sql注入;设置参数时无需考虑参 数类型。
使用oracle查询条件是日期类型,如果使用#{}则:
select * from table where birthday >=#{birthday}
${}:表示sql拼接,如果获取简单类型,${}中只能使用value;无法防止sql注入;设置参数时必须考虑参数类型。
使用oracle查询条件是日期类型,如果使用${}必须人为讲${}两边加单引号,再通过to date转日期型
select * from table where birthday >=to_date('${birthday}','yyyy-MM-dd')
二、什么情况下必须使用${}?
1.需要动态拼接表名时。
select * from ${tablename}
2.动态拼接排序字段。
select * from table那么 order by ${username} de
#{}:表示占位符,如果获取简单类型,#{}中可以使用value也可以使用其他名称;可以有效防止sql注入;设置参数时无需考虑参 数类型。
使用oracle查询条件是日期类型,如果使用#{}则:
select * from table where birthday >=#{birthday}
${}:表示sql拼接,如果获取简单类型,${}中只能使用value;无法防止sql注入;设置参数时必须考虑参数类型。
使用oracle查询条件是日期类型,如果使用${}必须人为讲${}两边加单引号,再通过to date转日期型
select * from table where birthday >=to_date('${birthday}','yyyy-MM-dd')
二、什么情况下必须使用${}?
1.需要动态拼接表名时。
select * from ${tablename}
2.动态拼接排序字段。
select * from table那么 order by ${username} de
相关文章推荐
- 什么情况下必须使用C++的初始化列表
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?
- delegate和notification区别,分别在什么情况下使用?
- 【JAVA中抽象类与接口的区别,分别在什么情况下使用它们】
- 在什么情况下使用struct,struct与class的区别
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?
- 同步和异步的区别和联系以及一般在什么情况下使用它们
- JAVA中抽象类与接口的区别,分别在什么情况下使用它们
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?(
- delegate和notification区别,分别在什么情况下使用?
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?
- 数据结构:最小堆/哈希表/二叉树/平衡二叉树/红黑树的意义(什么情况下使用)
- 关于数据库中使用 left join on ...and ...和 left join on ....where ...区别,和使用group by 要注意的情况
- @Register 和 @Import 之间有什么区别呢?什么地方最适合由 ASP.NET 应用程序使用的非系统程序集 DLL?
- DataReader与DataSet有什么区别?何时使用哪种
- DataReader与DataSet有什么区别?何时使用哪种
- 静态类在什么情况下使用
- SQL语句在什么情况下使用全表扫描?
- [转]Web service到底是什么?在什么情况下,你应该使用web service