嗨,我正在尝试创建一个登录表单并使用hibernate框架.

String user = request.getParameter("username");

String password = request.getParameter("password");

EntityManagerFactory entityFactory = Persistence

.createEntityManagerFactory("test");

EntityManager entityManager = entityFactory.createEntityManager();

String select = "SELECT userName, passWord FROM UserAccounts WHERE userName='"

+ user + "' and passWord='" + password + "'";

Query query = entityManager.createQuery(select);

if(query.getResultList().size() == 0){

System.out.println("Account does not exist!");

}else{

System.out.println("Login Success!");

UserAccounts login = (UserAccounts) query; //error here

System.out.println(login.getUserName());

}

问题是我在尝试将查询结果强制转换为帐户对象时遇到错误.

转换的正确方法是什么?

谢谢!

解决方法:

使用变量并绑定参数以防止注入攻击并选择UserAccounts对象.

String select = "SELECT ua FROM UserAccounts ua WHERE ua.userName=:userName and ua.passWord=:password";

Query query = entityManager.createQuery(select);

query.setParameter("userName", user);

query.setParameter("password", password);

使用getSingleResult(),因为用户/密码应该只识别一个用户. (还可以防止一些攻击)并将其强制转换为您选择的类(UserAccounts)

UserAccounts ua = (UserAccounts) query.getSingleResult();

PS:永远不要在数据库中以明文形式存储密码.请改用单向哈希.例如. bcrypt

标签:java,jpa,hibernate,jpa-2-0

来源: https://codeday.me/bug/20190829/1762716.html

java hibernate的使用_java – 使用hibernate / JPA登录相关推荐

  1. Java导入sql失败_java – 在hibernate中导入import.sql失败

    我希望每次应用程序运行时自动删除表并创建一个新表,并自动插入预定义数据.我已经在import.sql中准备数据了.我已经在application.properties中设置了spring.jpa.hi ...

  2. java 中映射关系_java – 在Hibernate中映射一对多的关系?

    我有两个表,一个用户表和一个user_avatar表.对于每个用户,user_avatar表中有3条记录,适用于3种大小的头像(大,中,小). user_avatar表具有userId列,该列引用Us ...

  3. java session 生命周期_java之hibernate之session中对象的生命周期

    1. session是用来执行对象的crud操作,并且session是对象事务工厂.session是线程级别的,所以生命周期比较短. 2.session中对象的生命周期图: 3.session中对象的 ...

  4. 如何用Java制作hwid验证_java - 将帐户登录+ HWID锁定添加到Java程序的最安全方法是什么? - SO中文参考 - www.soinside.com...

    是的,你可以做到,但你需要重新设计你的应用程序.您应该将应用程序分成两个不同的应用程序.(简而言之:您还有很长的路要走) 1-客户端应用程序:Java应用程序与最终用户交互的位置. 2-服务器应用程序 ...

  5. 使用java模拟幸运抽奖_JAVA之模拟注册登录幸运抽奖

    import java.util.Scanner; public class LuckyNum{ /** * 幸运抽奖 */ public static void main(String[] args ...

  6. java hibernate的使用_《Hibernate快速开始 – 4 – 使用JAVA持久层 API (JPA)教程》

    章节目标 使用JPA EntityManagerFactory 使用注解提供映射信息 使用 JPA 接口 本教程可在 entitymanger/ 路径下下载 4.1. persistence.xml ...

  7. Java设计流程执行器_Java进阶面试精选系列:SpringMVC+SpringBoot+Hibernate+Mybatis+设计模式...

    小编精心收集:为金三银四准备,以下面试题先过一遍,为即将到了的面试做好准备,也过一遍基础知识点. 一.Spring/Spring MVC 1.为什么要使用 spring? 2.解释一下什么是 aop? ...

  8. java hibernate 多对多_java - hibernate多对多问题

    映射文件如下: sequence_stuid sequence_teaid @Test public void testSave2() { Configuration cfg = null; Serv ...

  9. java hibernate 自定义排序_Java hibernate如何对条件查询结果集排序?

    在此演示中,您将看到如何对outCriteria查询的结果集进行排序.可以通过org.hibernate.criterion.Order在Criteria对象中添加来完成,我们可以按升序或降序对结果进 ...

最新文章

  1. nginx日志问题解决方法记录
  2. 最新版,别的可以不用看了,zabbix 监控 esxi
  3. struts2的OGNL表达式(三)
  4. 【鬼网络】之远程访问及控制ssh
  5. 如何获取 SAP Commerce Cloud Spartacus UI 购物车 Cart 的加载状态
  6. JAVA代码—算法基础:数独问题(Sodoku Puzzles)
  7. python处理csv文件列错位_CSV文件分割与列异常处理的python脚本
  8. idea教程--如何使用码云管理代码
  9. java在线聊天项目ppt_基于JavaEE的在线聊天聊天.ppt
  10. Hadoop学习之路(二十七)MapReduce的API使用(四)
  11. cocos2d- AtlasSprite AtlasSpriteManager
  12. 容器技术Docker K8s 21 容器服务ACK基础与进阶-存储管理
  13. 对作用域插槽的理解:slot-scope
  14. 记录一次大创项目配置服务器的心得
  15. TypeScript--适合小白吧(应该)
  16. 但行好事 莫问前程(五月)
  17. Macbook 删除被锁定的应用
  18. python编程好学吗-python语言好学吗
  19. 硬件工程师(电源设计)
  20. FTP协议(指令集)

热门文章

  1. python中startswith()函数的用法
  2. 《Xcode实战开发》——1.1节下载
  3. 【Computer Organization笔记01】计算机组成原理课程要求、计算机的层次结构、计算机的发展历史
  4. 【数据结构笔记02】什么是算法
  5. java项目响应慢_java-项目运行缓慢
  6. java socket编程 聊天_基于java的socket简单聊天编程
  7. 极酷WIFI深度剖析免费WIFI
  8. python两个乘号_详解python中*号的用法!(含实例:零基础也看能懂)
  9. asyncio 文件io高并发_python教程:使用 async 和 await 协程进行并发编程
  10. 微服务项目部署在docker容器运行