猿问

不知道程序是哪儿出了错。请帮忙看一下吧

Hibernate:
public List<RcwhB> LoadAllGroupByName(){
Session session = HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createSQLQuery("select xm,count(xm) count from RcwhB group by xm");
List list = query.list();
session.getTransaction().commit();
return list;}
==============
Servlet:
... ...
List list = dao.LoadAllGroupByName();
request.setAttribute("rcwh_Load_All_Count", list);
request.getRequestDispatcher("/Admin_users/rcwh_tj.jsp").forward(request, response);
==============
JSP:
<c:forEach items="${rcwh_Load_All_Count}" var="r">
${r.xm }:${r.count }<br>
</c:forEach>

请问有哪儿没对吗?
用上面方法会报错(java.lang.NumberFormatException: For input string: "xm")
count在数据库里没有这个字段,但是我在javabean里有这个属性拿来临时存储统计值的,
把最上面的hibernate实现方法换成jdbc
public List<RcwhB> loadAllByCount() {
Connection conn = DBConnection.getConnection();
String sql = "select xm,count(xm) cou from RcwhB group by xm";
try{
Statement stmt = conn.createStatement();  
ResultSet rs = stmt.executeQuery(sql);  

while(rs.next()){
RcwhB r = new RcwhB();
r.setXm(rs.getString("xm"));
r.setCount(rs.getString("cou"));
list.add(r); }  
}catch(SQLException e){
e.printStackTrace(); }
return list; }
就没有问题。

ibeautiful
浏览 112回答 2
2回答

有只小跳蛙

我印象中createSQLQuery方法,然后list里返回不是你所要的模型对象,而是一堆object类型的数组,也就是第一条记录就是一个数组,你可以在return list 之前,把list里的东西遍历出来看一下,这样有助于你解决问题。

互换的青春

Query query = session.createSQLQuery("select xm,count(xm) count from RcwhB group by xm");返回的是一个list 查询的时候你在里面加了一个count 的字段而你对应的RcwhB model类里面肯定没有这个count属性没有getCount()和set方法&nbsp;所以导致hibernate查询的时候不能帮你封装成对应的modle所以就报你上面的错误
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答