用户登录
用户注册

分享至

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的硬解析,所以执行效率会提高不少。
软件
前端设计
程序设计
Java相关