Java 在hql中使用select*但获取值的地址
我试图在满足条件时从数据库中获取所有值。但我只得到列表的地址,而不是列为“全部”时的值。我尝试使用Java 在hql中使用select*但获取值的地址,java,sql,spring,hibernate,Java,Sql,Spring,Hibernate,我试图在满足条件时从数据库中获取所有值。但我只得到列表的地址,而不是列为“全部”时的值。我尝试使用,但不断得到一个错误java.lang.String。对于另一列,它工作正常。这是我在jsp中的代码 c:url var="actionUrl" value="process" /> <form id="student-form" method="post" action="${actionUrl }"> <select name="column"> <o
,但不断得到一个错误java.lang.String。对于另一列,它工作正常。这是我在jsp中的代码
c:url var="actionUrl" value="process" />
<form id="student-form" method="post" action="${actionUrl }">
<select name="column">
<option>All</option>
<option>lastName</option>
<option>firstName</option>
<option>cpNum</option>
<option>birthday</option>
<option>grade</option>
</select> 
<select name="condition">
<option>=</option>
<option><</option>
<option>></option>
<option><=</option>
<option>>=</option>
<option>!=</option>
</select> 
<select id="gradeID" name="grades">
</select> 
<button id=submit>Submit</button><br/><br/>
</form>
<p>${studentList}</p>
学生指南
@SuppressWarnings("unchecked")
public List<Student> findData(String column, String condition, int grades)
{
if(column.equals("All"))
{
String hql = "FROM Student x WHERE x.grade"+ condition +":grades";
Query query = getSessionFactory().openSession().createQuery(hql);
query.setParameter("grades", grades);
List<Student> result = query.list();
return result;
}
else
{
String hql = "SELECT x."+ column +" FROM Student x WHERE x.grade"+ condition +":grades";
Query query = getSessionFactory().openSession().createQuery(hql);
query.setParameter("grades", grades);
List<Student> result = query.list();
return (List<Student>)result;
}
}
@SuppressWarnings(“未选中”)
公共列表findData(字符串列、字符串条件、整数等级)
{
如果(列等于(“全部”))
{
字符串hql=“来自学生x,其中x.grade”+条件+“:grades”;
Query Query=getSessionFactory().openSession().createQuery(hql);
query.setParameter(“等级”,等级);
列表结果=query.List();
返回结果;
}
其他的
{
String hql=“从学生x中选择x.”+列+”,其中x.grade“+条件+”:grades”;
Query Query=getSessionFactory().openSession().createQuery(hql);
query.setParameter(“等级”,等级);
列表结果=query.List();
返回(列表)结果;
}
}
学生道
public interface StudentDao
{
public List<Student> findData(String column, String condition, int grades);
}
公共接口StudentDao
{
公共列表findData(字符串列、字符串条件、整数等级);
}
用户迭代器并不断填充POJO并将其添加到列表中。您应该这样使用
:
<c:forEach items="${studentList}" var="student">
Name: <c:out value="${student.firstName} ${student.lastName}" />
<!-- More data -->
</c:foreach>
姓名:
我不知道发生了什么,但我的forEach现在工作正常。顺便说一句,谢谢
<c:forEach items="${studentList}" var="student">
Name: <c:out value="${student.firstName} ${student.lastName}" />
<!-- More data -->
</c:foreach>