`

hql纯sql语句控制-分页

    博客分类:
  • hql
 
阅读更多
public List<Map<String,Object>> find(final String sql,final String[] fields,
					final Object[] conditionValues,final int page,int prePage){
        List list = getHibernateTemplate().executeFind(new HibernateCallback()
            {
                public Object doInHibernate(Session session)
                    throws HibernateException, SQLException
                {
                	String nsql = sql;
                	if(pager!=null){
                		nsql+= pager.getOrderString();
                	}
                    SQLQuery query = session.createSQLQuery(nsql);
                    int first=((page-1)*prePage);
                    query.setFirstResult(first);
                    query.setMaxResults(prePage);
                    if(conditionValues!=null)
                    {
	                    for (int i = 0 ; i < conditionValues.length ; i++)
	                    {
	                        query.setParameter( i, conditionValues[i]);
	                    }
                    }
                    if(fields!=null){
	                    for (int i = 0 ; i < fields.length;i++){
	                    	query.addScalar(fields[i]);
	                    }
                    }
                    ResultTransformer rtf = Transformers.ALIAS_TO_ENTITY_MAP;
                    List result = query.setResultTransformer(rtf).list();
                    return result;
                }
            });
        return list;
    }


public Object findOne(final String sql,final String[] fields,final Object[] conditionValues){
        List list = getHibernateTemplate().executeFind(new HibernateCallback()
        {
            public Object doInHibernate(Session session)
                throws HibernateException, SQLException
            {
                SQLQuery query = session.createSQLQuery(sql);
                if(conditionValues!=null)
                {
	                for (int i = 0 ; i < conditionValues.length ; i++)
	                {
	                    query.setParameter( i, conditionValues[i]);
	                    
	                }
                }
                if(fields!=null){
                    for (int i = 0 ; i < fields.length;i++){
                    	query.addScalar(fields[i]);
                    }
                }
                 Object o  = query.uniqueResult();
                 List l = new ArrayList();
                 l.add(o);
                return l;
            }
        });
        return list.get(0);
	}
分享到:
评论

相关推荐

    监控sql输出-可以查看hql转成sql的结果值

    标题中的“监控SQL输出-可以查看HQL转成SQL的结果值”指的是在使用HQL(Hibernate Query Language)进行数据库操作时,如何通过某些工具或手段来观察这些高级查询语句被转换成底层数据库能理解的SQL语句的过程,并对...

    SSh sql/hql 分页

    - **SQL分页**:通过编写特定的SQL语句来实现分页查询,如使用LIMIT关键字。 - **HQL分页**:通过Hibernate Query Language(HQL)提供的分页方法实现。 #### 三、SSH分页案例分析 本节将通过具体的代码示例,展示...

    Struts_Spring_Hibernate_CRUD操作案例_-分页查询

    Struts、Spring和Hibernate是Java开发中常用的三大框架,它们分别负责不同的职责:Struts作为MVC(模型-视图-控制器)框架处理请求和响应,Spring提供了依赖注入和事务管理,而Hibernate则是对象关系映射(ORM)框架...

    Hibernate+sqlserver2000分页

    首先,Hibernate是Java领域中最流行的ORM(对象关系映射)框架之一,它允许开发者使用面向对象的方式操作数据库,减少了直接编写SQL语句的工作量。而SQL Server 2000是一款由Microsoft开发的关系型数据库管理系统,...

    hql分页

    Hibernate的分页实现主要在`org.hibernate.query.Query`类中,`setFirstResult()`和`setMaxResults()`方法最终会转化为对应的SQL语句。对于不同的数据库,Hibernate会生成适配的分页SQL。例如,对于MySQL,会生成...

    03-HQL实用技术.pdf

    - **编写HQL语句**: 编写符合HQL语法的查询语句。 - **创建Query对象**: 使用`Session.createQuery()`方法创建`Query`对象。 - **执行查询**: 调用`Query`对象的`list()`方法执行查询并获取结果集。 **2.3 HQL支持...

    SSH框架+SQLServer实现分页的小项目

    分页查询通常需要编写SQL语句,利用`TOP`(在SQLServer中)或其他类似关键字来限制返回的记录数,配合`ORDER BY`进行排序。 **分页实现** 在SSH框架下实现分页,通常会涉及到以下几个步骤: 1. **前端页面**:...

    hql语句 使用大全

    ### HQL语句使用大全 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. ...

    hql的增删改查

    HQL(Hibernate Query Language)是Hibernate框架提供的查询语言,它基于对象模型而不是传统的SQL语法,使得开发人员能够更加自然地操作数据库中的对象。本文将详细介绍HQL在进行数据增删改查时的常见用法。 #### ...

    高效率spring+struts+hibernate分页算法

    - `getTotalCount(PageBean p, String str[], Object ob2[]) throws Exception`: 获取总记录数的方法,参数用于构建SQL语句。 - `getList(PageBean page, String str[], Object ob2[]) throws Exception`: 同样用于...

    Hibernate HQL命名参数和Query接口的分页

    在Java的持久化框架Hibernate中,HQL(Hibernate Query Language)是用于操作对象关系映射(ORM)的SQL方言,提供了更加面向对象的查询方式。本篇将详细讲解HQL中的命名参数以及如何通过Query接口实现分页查询,这...

    sql2008 hql语句翻译过来的分页语句介绍

    在SQL Server 2008中,为了实现高效且可读性强的分页查询,我们可以使用`WITH`子句(也称为Common Table Expression,CTE)配合`ROW_NUMBER()`函数来实现。`WITH`子句允许我们将复杂的查询逻辑分解成更小、更易于...

    struts+hibernate+sql server2005分页的小项目

    - **构建分页查询**:根据pageNumber和pageSize,使用LIMIT或OFFSET/FETCH子句(SQL Server 2005支持OFFSET/FETCH语法)构造分页查询语句。 - **执行查询并获取结果**:使用Hibernate执行分页查询,获取当前页的数据...

    Hibernate-HQL.rar_HQL_hibernate hql

    1. 合理使用HQL与SQL:对于复杂的数据库操作,可能需要结合使用HQL和原生SQL。 2. 避免在HQL中使用SQL函数:尽量用Hibernate提供的函数,以确保跨数据库兼容性。 3. 优化查询性能:合理设计数据库索引,避免全表扫描...

    java通用分页代码实例.rar

    在Java代码中,我们可以通过设置参数来指定每页的记录数和当前页码,然后拼接SQL语句执行查询。 2. **ORM框架分页**: - Hibernate:提供了Criteria和HQL两种方式进行分页。Criteria API可以直接通过Query....

    关于Hibernate分页类和jdbc的sql分页完美融合

    这样的类通常会有一个用于执行分页查询的方法,比如`doPagingQuery`,它接受SQL查询语句、起始索引、每页大小等参数,并返回一个自定义的分页对象,如"Page.java"所示。 `Page.java`文件可能定义了一个名为`Page`的...

    HQL语言大全 高清晰可复制版

    类似于SQL的预编译语句,HQL也支持参数绑定,防止SQL注入。例如: ```sql FROM Employee e WHERE e.name = :name ``` 然后在执行时传入参数值。 5. **HQL与Criteria查询的比较** Hibernate还提供了Criteria ...

    HQL语句的用法

    HQL(Hibernate Query Language)是Hibernate框架中用于对象关系映射(ORM)的查询语言,它允许开发者以面向对象的方式来编写查询,而不是传统的SQL。HQL的设计目标是与Java等面向对象的语言更加兼容,支持类、接口...

Global site tag (gtag.js) - Google Analytics