我正在尝试从学生表中检索学生对象,但得到的是 null
。
public Student getStudentbyStudentName(String studentName) {
final String query = "from Student s where s.studentName = '" + studentName + "'";
return (Student)sessionFactory.getCurrentSession().createQuery(query).uniqueResult();
}
我还尝试了以下方法来检索 studentName 的学生对象。它一直有效,直到我的网页刷新。当页面刷新时,以下返回 null。请帮忙。
public Student getStudentbyStudentName(String studentName) {
return (Student) sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.add(Restrictions.eq("studentName", studentName))
.uniqueResult();
}
最佳答案
我猜你传递给那个方法的名称是一种 Unicode,那么你应该在你的 MySQL 连接 url 中放置额外的参数。例如:
jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=UTF-8
其次,但很重要。您的第一个代码片段容易受到 SQL 注入(inject)攻击。请使用 Criteria API(您的第二个代码段)或准备您的查询:
from Student s where s.studentName = :name
结合 setParameter(...) 方法
关于java - 即使表数据退出,Hibernate Session 也返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44188277/