hibernate占位符
- 作者: 我就想取个名字
- 来源: 51数据库
- 2020-10-11
1.层次清晰,HQL长了之后代码也不显得乱
2.确实可以提高一定效率
3.安全性考虑,防止一些注入性攻击, 举个例子如果你的ruleCode变量从jsp页面获得,是客户手动输入的,那么客户如果恶意的输入一些特殊的字符 如 'or'='or' 那么你的HQL解析成SQL就变成
select * from CategoryRule vc where vc.ruleCode = ‘or’='or' ,如果这是用户名或者密码, 这样可能就能非法登录系统 ,或者获得后台一些数据错误信息的反馈。
采用setString就会把'or'='or' 整体当成一个串,就不会出现这种问题
你好!
1.系统得将你的HQL语句转换成SQL语句才能执行,用占位符可以预先编译,提高执行效率
2.增加代码可读性
3.防止SQL注入
希望对你有所帮助,望采纳。
用占位符的目的是绑定变量,这样可以减少数据库对SQL的硬解析,所以执行效率会提高不少。
2.确实可以提高一定效率
3.安全性考虑,防止一些注入性攻击, 举个例子如果你的ruleCode变量从jsp页面获得,是客户手动输入的,那么客户如果恶意的输入一些特殊的字符 如 'or'='or' 那么你的HQL解析成SQL就变成
select * from CategoryRule vc where vc.ruleCode = ‘or’='or' ,如果这是用户名或者密码, 这样可能就能非法登录系统 ,或者获得后台一些数据错误信息的反馈。
采用setString就会把'or'='or' 整体当成一个串,就不会出现这种问题
你好!
1.系统得将你的HQL语句转换成SQL语句才能执行,用占位符可以预先编译,提高执行效率
2.增加代码可读性
3.防止SQL注入
希望对你有所帮助,望采纳。
用占位符的目的是绑定变量,这样可以减少数据库对SQL的硬解析,所以执行效率会提高不少。
推荐阅读