java hibernate的使用_java – 使用hibernate / JPA登录
嗨,我正在尝试创建一个登录表单并使用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登录相关推荐
- Java导入sql失败_java – 在hibernate中导入import.sql失败
我希望每次应用程序运行时自动删除表并创建一个新表,并自动插入预定义数据.我已经在import.sql中准备数据了.我已经在application.properties中设置了spring.jpa.hi ...
- java 中映射关系_java – 在Hibernate中映射一对多的关系?
我有两个表,一个用户表和一个user_avatar表.对于每个用户,user_avatar表中有3条记录,适用于3种大小的头像(大,中,小). user_avatar表具有userId列,该列引用Us ...
- java session 生命周期_java之hibernate之session中对象的生命周期
1. session是用来执行对象的crud操作,并且session是对象事务工厂.session是线程级别的,所以生命周期比较短. 2.session中对象的生命周期图: 3.session中对象的 ...
- 如何用Java制作hwid验证_java - 将帐户登录+ HWID锁定添加到Java程序的最安全方法是什么? - SO中文参考 - www.soinside.com...
是的,你可以做到,但你需要重新设计你的应用程序.您应该将应用程序分成两个不同的应用程序.(简而言之:您还有很长的路要走) 1-客户端应用程序:Java应用程序与最终用户交互的位置. 2-服务器应用程序 ...
- 使用java模拟幸运抽奖_JAVA之模拟注册登录幸运抽奖
import java.util.Scanner; public class LuckyNum{ /** * 幸运抽奖 */ public static void main(String[] args ...
- java hibernate的使用_《Hibernate快速开始 – 4 – 使用JAVA持久层 API (JPA)教程》
章节目标 使用JPA EntityManagerFactory 使用注解提供映射信息 使用 JPA 接口 本教程可在 entitymanger/ 路径下下载 4.1. persistence.xml ...
- Java设计流程执行器_Java进阶面试精选系列:SpringMVC+SpringBoot+Hibernate+Mybatis+设计模式...
小编精心收集:为金三银四准备,以下面试题先过一遍,为即将到了的面试做好准备,也过一遍基础知识点. 一.Spring/Spring MVC 1.为什么要使用 spring? 2.解释一下什么是 aop? ...
- java hibernate 多对多_java - hibernate多对多问题
映射文件如下: sequence_stuid sequence_teaid @Test public void testSave2() { Configuration cfg = null; Serv ...
- java hibernate 自定义排序_Java hibernate如何对条件查询结果集排序?
在此演示中,您将看到如何对outCriteria查询的结果集进行排序.可以通过org.hibernate.criterion.Order在Criteria对象中添加来完成,我们可以按升序或降序对结果进 ...
最新文章
- nginx日志问题解决方法记录
- 最新版,别的可以不用看了,zabbix 监控 esxi
- struts2的OGNL表达式(三)
- 【鬼网络】之远程访问及控制ssh
- 如何获取 SAP Commerce Cloud Spartacus UI 购物车 Cart 的加载状态
- JAVA代码—算法基础:数独问题(Sodoku Puzzles)
- python处理csv文件列错位_CSV文件分割与列异常处理的python脚本
- idea教程--如何使用码云管理代码
- java在线聊天项目ppt_基于JavaEE的在线聊天聊天.ppt
- Hadoop学习之路(二十七)MapReduce的API使用(四)
- cocos2d- AtlasSprite AtlasSpriteManager
- 容器技术Docker K8s 21 容器服务ACK基础与进阶-存储管理
- 对作用域插槽的理解:slot-scope
- 记录一次大创项目配置服务器的心得
- TypeScript--适合小白吧(应该)
- 但行好事 莫问前程(五月)
- Macbook 删除被锁定的应用
- python编程好学吗-python语言好学吗
- 硬件工程师(电源设计)
- FTP协议(指令集)
热门文章
- python中startswith()函数的用法
- 《Xcode实战开发》——1.1节下载
- 【Computer Organization笔记01】计算机组成原理课程要求、计算机的层次结构、计算机的发展历史
- 【数据结构笔记02】什么是算法
- java项目响应慢_java-项目运行缓慢
- java socket编程 聊天_基于java的socket简单聊天编程
- 极酷WIFI深度剖析免费WIFI
- python两个乘号_详解python中*号的用法!(含实例:零基础也看能懂)
- asyncio 文件io高并发_python教程:使用 async 和 await 协程进行并发编程
- 微服务项目部署在docker容器运行