usrList = entityManager.createQuery(hql, Usr.class).getR_jpa条件查询">
当前位置:   article > 正文

Spring Boot+JPA 有查询条件的查询_jpa条件查询

jpa条件查询

本篇介绍使用JPA 的条件查询, 关于JPA基本查询可以参考:

Spring Boot+JPA 查询数据方式与代码演示

不安全的查询

在开发时, 为了简便, 习惯会拼接Where子句的查询条件, 查询的变量的值通过外部传入, 示例来看:

		String sId = "1";
		String hql = "from Usr n where id="+sId;
		List<Usr> usrList = entityManager.createQuery(hql, Usr.class).getResultList();
  • 1
  • 2
  • 3

以上根据用户Id查询用户信息, 如果id 传入的值如期望自然是可以, 可如果id 的值传入的是 sId = "1 or id !=1"; , 会出现什么结果呢?
结果是会把系统中所有的用户信息全部查出来了, 这也就是SQL注入的风险。

所以, 根据参数值拼接查询子句进行查询是不推荐的编码方式, 甚至是禁止使用的。

setParameter() 设置参数值

		String hql = "from Usr n where n.id=:id";
		List<Usr> usrList = entityManager.createQuery(hql, Usr.class).setParameter("id&
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/784146
推荐阅读
相关标签
  

闽ICP备14008679号