文档章节

Hibernate执行原始SQL语句

Ryan-瑞恩
 Ryan-瑞恩
发布于 2014/09/15 12:20
字数 162
阅读 191
收藏 0

/**

方式一

**/

    @Override
    public List getDataStatistics(String sql, Page.Offset offset, String ... params )
    {
        SQLQuery sqlQuery = getCurrentSession().createSQLQuery(sql);


        int i = 0;
        for(int len = params.length; i < len; i++)
        {
            sqlQuery.setParameter(i, params[i]);
        }
        sqlQuery.setParameter(i++, offset.getStart());
        sqlQuery.setParameter(i++, offset.getLimit());
        List result = (List)sqlQuery.setResultTransformer(new ResultTransformer()
        {
            @Override
            public Object transformTuple(Object[] tuple, String[] aliases)
            {
                return null;
            }


            @Override
            public List transformList(List collection)
            {
                return null;
            }
        });


        return result;
    }



/**

方式二

**/


    @Override

    public List getDataStatistics(String sql, Page.Offset offset, String ... params )
    {
        SQLQuery sqlQuery = getCurrentSession().createSQLQuery(sql);
        int i = 0;
        for(int len = params.length; i < len; i++)
        {
            sqlQuery.setParameter(i, params[i]);
        }
        sqlQuery.setParameter(i++, offset.getStart());
        sqlQuery.setParameter(i++, offset.getLimit());




        return sqlQuery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE).list();
    }

/**

方式三

**/


    /**
     * 记录总的条数统计
     */
    @Override
    public long getSumOfDataTotal(String sql, Object... params)
    {
        SQLQuery sqlQuery = getCurrentSession().createSQLQuery(sql);
        for(int i = 0, len = params.length; i < len; i++)
        {
            sqlQuery.setParameter(i, params);
        }
        return Long.valueOf(sqlQuery.uniqueResult().toString());
    }

© 著作权归作者所有

Ryan-瑞恩

Ryan-瑞恩

粉丝 152
博文 245
码字总数 189568
作品 0
西安
后端工程师
私信 提问
hibernate flush 机制与调用 save 后不立即打印 sql 的问题

针对昨天同事遇到的hibernate的问题。算是hibernate最基本的东西。具了解,这个问题很多人遇到过,也很常见,却遇到了还经常会懵了。 为了加深印象,知其然,知其所以然。 之后单纯用原始的H...

唐海洋Sir
2014/02/28
1K
0
【Java框架】 Hibernate与Mybatis对比

Hibernate与Mybatis对比 今天同事跟我说现在的小规模公司很少用hibernate,大部分都用mybatis。平时也经常接触这两方面,正好最近不怎么忙,查看网上其他相关技术文档 ,梳理下Mybatis和Hib...

林元煌
2017/07/05
0
0
幽默者/hibernate mysql demo

hibernate-mysql-demo 基于maven构建的hibernate mysql demo。 基于xml、annotation的hibernate demo:其中包含one-to-one、one-to-many、many-to-many映射关系的配置。 独立的测试用例。 内...

幽默者
2015/01/26
0
0
【持久化框架】Mybatis与Hibernate的详细对比

前言 这篇博文我们重点分析一下Mybatis与Hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理。 Mybatis 【持久化框架】Mybatis简介与原理 【持久化框架】Spr...

sietai
2018/05/18
143
0
Hibernate 检索查询的几种方式(HQL,QBC,本地SQL,集成Spring等)

1.非集成Spring Hibernate的检索方式,主要有以下五种。 1.导航对象图检索方式。(根据已经加载的对象,导航到其他对象。) 2.OID检索方式。(按照对象的OID来检索对象。) 3.HQL检索方式。(...

长平狐
2013/01/06
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

Java FOR-EACH循环

FOR-EACH循环使得代码更加的简短,也让代码更加易懂,其实他并没有加入什么新的功能。他的功能完全可以用简单的FOR循环代替。 for-each的用法: int a[] = {1,2,3,4,5,6} for(int s:a){ Syst...

无名氏的程序员
11分钟前
2
0
使用HTML5的History API

本文转载于:专业的前端网站➣使用HTML5的History API   HTML5 History API提供了一种功能,能让开发人员在不刷新整个页面的情况下修改站点的URL。这个功能很有用,例如通过一段JavaScript代...

前端老手
13分钟前
2
0
JAVA 编写redisUtils工具类,防止高并发获取缓存出现并发问题

import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.BoundHashOperations;import org.springframework.data.redis.core.BoundValueOperations;import org.......

huangkejie
55分钟前
7
0
JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
今天
98
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部