1.通过拦截 过滤参数
2.通过底层DAO? 对每个参数进行过滤
3.进行参数绑定如
使用named parameter
使用named parameter,我们重新写上面的查询语句:
String queryString = "from?table item where?clum1 like :param";
冒号后面是一个named parameter,我们可以使用Query接口将一个参数绑定到param参数上:
????List result = session.createQuery(queryString)
??????????????????????.setString("param", param)
??????????????????????.list();
?
如果有多个参数需要被帮定,我们这样处理:
String queryString = "from table where clum1 like :param1"
????????????????????????????????????????????? + "and clum2 > :param2";
List result = session.createQuery(queryString)
??????????????????.setString("param1", param1)
???????????????????.setDate("clum2 ", param2)
??????????????????.list();
clum2 //是date类型
最后,在named parameter中可能有一个参数出现多次的情况,应该怎么处理呢?
String sql= "from table? where?clums??like :param"
???????????????????????????+ " or clums?? like :param";
List result = session.createQuery(sql)
??????????????????.setString("param", param)
???????????????????.list();