我正在尝试从学生表中检索学生对象,但我正在获取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();
}
答案 0 :(得分:1)
我猜你传递给该方法的名称是一种Unicode,那么你应该在你的MySQL连接url中放置额外的参数。 E.g:
jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=UTF-8
其次,但很重要。您的第一个代码段容易受到SQL注入攻击。请使用Criteria API(您的第二个代码段)或准备您的查询:
from Student s where s.studentName = :name
与setParameter(...)方法结合使用