hql hibernate获取总条数 hibernate中获取数据库中总条数
hibernate中获取数据库中总条数
select * from student 即可,还有hibernate是封装jdbc的。用session.getConnection()是不可取的,可以用 List list = session.createSqlQuery("... ").addEntity(xxx.class).list()得到
hibernate的hql 如何统计一个分组查询后的记录条数吗?
那就不count了吧,类似这样的:
Query q = session.createQuery("select u.id,u.name,count(*) from User u group by u.id,u.name")
System.out.println(q.list().size())
也能得到你要的结果
spring与hibernate结合使用getHibernateTemplate分页获取数据总数的问题
楼上说得对,发两句hql,一句分页查询指定数据,另一句查询总条数
假设分页语句已经写好,你可以直接调用下面的代码转换成查询总条数:
String totalHql = hql.substring( hql.toLowerCase().indexOf("from"), hql.length())
totalHql = "SELECT COUNT(*) " totalHql
如何获得这条sql语句的总条数
在外面套一个语句,把原sql的select语句作为子查询的内容
比如:
select * from tablea where ..
那么这么写:
select count(1) cnt from (
select * from tablea where ..
) a
不同数据库可能稍有不同,比如需要as
select count(1) cnt from (
select * from tablea where ..
) as a
hibernate 如何统计 分组后的结果 的条数
1.HQL几乎可以办到绝大部分SQL要表达的含义。并且由于支持方言,所以可以跨数据库,所以不是万不得已还是不要使用SQL原生查询接口。你的那个查询用HQL其实很简单的:
String hql = "select count(??) from ?? group by ??"
Query query = session.createQuery(hql)
为了支持分页,只需加上这样的限制:
query.setMaxResults(10)
query.setFirstResult(0)
这样就是显示了10条数据了,setFirstResult方法的参数根据你选择的页数来计算就OK!
2.使用Criteria,Criteria criteria = session.createCriteria(??.class)
criteria.setProjection(Projection.groupProperty("分组统计的字段名称")).list()
返回一个结构是 长度为2的Object[]数组对象的List。注意Criteria可能目前仍然不支持having表达式,但是这种编程式的查询比HQL要好。