为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ibeautiful 2023-03-12 17:13:10
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实现方法换成jdbcpublic 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; }就没有问题。
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

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

查看完整回答
反对 回复 2023-03-15
?
互换的青春

TA贡献1797条经验 获得超6个赞

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

查看完整回答
反对 回复 2023-03-15
  • 2 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信