DAO 里边的方法
public int getNum()//获得总记录数
{
Session session=factory.HibernateSessionFactory.getSession();
int n=0;
String sql = "select count(id) from Lsl";
Query query=session.createQuery(sql);
n = ((Integer)query.list().get(0)).intValue();
return n;
}
执行时报错:
java.lang.ClassCastException: java.lang.Long
DAO.HibernateDAO.getNum(HibernateDAO.java:44)
Action.loginAction.execute(loginAction.java:33)
public int getNum()//获得总记录数
{
Session session=factory.HibernateSessionFactory.getSession();
int n=0;
String sql = "select count(id) from Lsl";
Query query=session.createQuery(sql);
n = ((Integer)query.list().get(0)).intValue();
return n;
}
执行时报错:
java.lang.ClassCastException: java.lang.Long
DAO.HibernateDAO.getNum(HibernateDAO.java:44)
Action.loginAction.execute(loginAction.java:33)
解决方案 »
- 谁有jsp+servlet的入门教学电子档啊
- 怎样让Hibernate在保存数据时没有对应表时会自动创建表
- ibatis可以执行数据库里面的FUNCTION吗?
- 求对文件操作java程序 各位高手.进来摸摸...
- 谁来帮我指出我哪里错了啊?spring+hibernate问题
- 求hibernate学习资料,很快结贴,不喜欢拖延
- struts开发者请留下MSN。
- Torque 和 Hibernate 的异同?
- 请问哪里有MS SQLSERVER2000的JDBC驱动程序的下载(最新版)?
- web.xml中的ejb-local-ref如何引用一个ejbmodule中的ejb?(在线等)谢谢!!!
- 在tomcat中使用jacob问题
- java 操作 liunx命令,该如何操作呢?
所以具体原因 不清楚但如果是 类型的问题的话
试一试
Integer.parseInt(query.list().get(0));
所以具体原因 不清楚但如果是 类型的问题的话
试一试
Integer.parseInt(query.list().get(0));
int total = ((Long)this.getSession.createQuery(Hql).uniqueResult()).intValue(); Hql :select count(*) from tb_table
String sql = "select count(id) from Lsl";
Query query=session.createQuery(sql);
ret = query.list().get(0);
return (ret instanceof Integer) ? (Long) ret : (Integer) ret;
Object ret = null; String sql = "select count(id) from Lsl"; Query query=session.createQuery(sql); ret = query.list().get(0);
return (ret instanceof Integer) ? (Integer) ret : ((Long) ret).intValue();
这样就好啦!
{
Session session=factory.HibernateSessionFactory.getSession(); String sql = "select count(id) from Lsl";
Query query=session.createQuery(sql);
return new BigDecimal(query.list().get(0).toString());
}
不同的数据库驱动,count(*)对应的java类型可能不一样需要考虑Integer和Long 2种情况
你直接用query.list().size();不就完了吗!!!!
HIbernate后来的版本把INT改为LONG了.以前的用INT还是正常的.
因为无论是Integer还是Long都是Number的子类,这样写一定不会报错。