一、两者区别。
#{}:表示占位符,如果获取简单类型,#{}中可以使用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