Hibernate 模糊查询 ' %?% ' SQL执行异常

  今天我在使用Hibernate 的SQL预编译之后注入参数的形式写了一条模糊查询语句。刚开始我是这么写的

  

  然后当我执行这条SQL语句后

  

  可以看到结果是无效字符SQL异常。

  然后我查了下原因,发现以上SQL在预编译时缺少 ' '  才导致SQL异常 

  

  下面我改成这种方式

  

  结果输出如下

  

  这问题原因是什么呢? 

 

  

   原因:HQL语句中''中的?没有解析成占位符,确解析成字符串了。

   所以按照要求要去掉' ',但去掉' '就会报上面一项错误。

   在我咨询了同事自后,我的问题得到了解决。解决的方法就是使用SQL 中的 || 字符串连接符。

  

  这种方式就避免了上面两种方式带来的异常问题 ,而且还是用了SQL预编译,防范了SQL注入攻击。

 

 

  以上是我工作中一个小问题,特此记录,以备以后自己查阅

  

  

posted @ 2016-03-25 14:52  好叶叶孤城  阅读(2670)  评论(0编辑  收藏  举报