HIbernate 使用SQLQuery查询占位符使用的问题

一开始使占位符形式:

                 String sql="select * from table where  字段 like '%?%' ";

                 SQLQuery sqlQuery=session.createSQLQuery(sql);

                 sqlQuery.setString(0, vlaue);//value是字符串对应第一个?位置插入字段

                 结果直接GG执行不了,网上说是 '%?%' 的问题,因为存在"需要对字符串拼接然后..

第二种形式:(被坑了这是oracle的方式mysql没有||这个玩意。。。。)

                 String sql="select * from table where  字段 like '%'||?||'%' ";

                 执行结果不报错但是得到的数据不对,他将我所有的表的数据全取出来了也就是后 

                 面的限制条件完全没用

第三种形式:

                 String sql="select * from table where  字段 like CONCAT('%',?,'%') ";

                 这样就可以了

你可能感兴趣的:(java)