usrList = entityManager.createQuery(hql, Usr.class).getR_jpa条件查询">
赞
踩
本篇介绍使用JPA 的条件查询, 关于JPA基本查询可以参考:
在开发时, 为了简便, 习惯会拼接Where子句的查询条件, 查询的变量的值通过外部传入, 示例来看:
String sId = "1";
String hql = "from Usr n where id="+sId;
List<Usr> usrList = entityManager.createQuery(hql, Usr.class).getResultList();
以上根据用户Id查询用户信息, 如果id 传入的值如期望自然是可以, 可如果id 的值传入的是 sId = "1 or id !=1";
, 会出现什么结果呢?
结果是会把系统中所有的用户信息全部查出来了, 这也就是SQL注入的风险。
所以, 根据参数值拼接查询子句进行查询是不推荐的编码方式, 甚至是禁止使用的。
String hql = "from Usr n where n.id=:id";
List<Usr> usrList = entityManager.createQuery(hql, Usr.class).setParameter("id&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。