`
rekoe.net
  • 浏览: 8536 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Hibernate 中执行JDBC

阅读更多

Hql ="SELECT l.fgid,l.fgname,l.icon,l.fglev,l.fginstruction,l.reply_count,l.typeid,g.ucounts FROM AppGameList as l left join on(select fgid,count(fgid) As ucounts from AppWaJin GROUP by fgid) as g On g.fgid=l.fgid ORDER BY ucounts DESC limit 21"

函数:
public List<Map<String,String>> test(final String sql) {
            return (List<Map<String, String>>) getHibernateTemplate().execute(new HibernateCallback() {
              public Object doInHibernate(Session session) throws HibernateException, SQLException {
                Connection conn = null;
                PreparedStatement pstmt =null;
                ResultSet rs=null;
                Transaction transaction = null;
                List<Map<String,String>> rows =null;
                try{
                    transaction = session.beginTransaction();
                    conn = session.connection();
                    pstmt = conn.prepareStatement(sql);
                    rs =pstmt.executeQuery();
                    rows= new ArrayList<Map<String,String>>();
                    ResultSetMetaData rsmd=rs.getMetaData();
                    int columnCount=rsmd.getColumnCount();
                    String []columns=new String[columnCount];
                    for(int i=1;i<=columnCount;i++){
                        columns[i-1]=rsmd.getColumnLabel(i);
                    }
                    rsmd=null;
                    Map<String,String> row=null;
                    while (rs.next()){
                        row=new HashMap<String,String>(columnCount);
                        for (int i=1;i<=columnCount;i++) {
                            row.put(columns[i-1],rs.getString(i));
                        }
                        rows.add(row);               
                    }
                    row=null;
                    columns=null;
                    transaction.commit();
                }catch(Exception exception){
                    exception.printStackTrace();
                    if(transaction!=null){
                        transaction.rollback();
                    }
                }finally {
                    try {
                        if(transaction!=null){
                            transaction=null;
                        }
                        if(rs!=null){
                            rs.close();
                            rs=null;
                        }
                        if(pstmt!=null){
                            pstmt.close();
                            pstmt=null;
                        }
                        if(conn!=null){
                            conn.close();
                            conn=null;
                        }
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                return rows;
            }
            });
          }
分享到:
评论

相关推荐

    hibernate所需包:hibernate3,依赖包,JDBC

    Hibernate通过JDBC与数据库进行通信,执行SQL语句。在Hibernate中,JDBC驱动程序是必要的,以便应用程序能够连接到特定的数据库。例如,"mysql-connector-java-3.1.13-bin.jar"就是MySQL的JDBC驱动,用于连接到MySQL...

    Hibernate and JDBC

    ### Hibernate与JDBC:概述与对比 #### 一、JDBC简介 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC...

    搭建hibernate所使用的jar包,内含mysql的jdbc的jar包

    标题提到的是“搭建hibernate所使用的jar包,内含mysql的jdbc的jar包”,这表明这个压缩包包含了用于构建Hibernate框架的库文件,并且这些库中还包括了连接MySQL数据库的Java Database Connectivity (JDBC)驱动。...

    hibernate-batch-size-test:Hibernate hibernate.jdbc.batch_size 测试

    `hibernate.jdbc.batch_size`是Hibernate配置中的一个重要参数,用于控制批处理操作的大小。本文将深入探讨这个参数的意义、作用以及如何在实际应用中进行测试。 批量插入是提高数据库性能的有效手段,特别是在大量...

    Spring对Hibernate及JDBC提供的支持

    在实际项目中,Spring还允许开发者结合使用Hibernate和JDBC。例如,在大数据量的简单查询场景下,可以选择性能较高的JDBC;而在复杂的对象关系映射或者更新操作时,可以利用Hibernate的ORM优势。Spring的这种灵活性...

    在JDBC,hibernate中实现分页

    以上代码展示了如何在Hibernate和JDBC中实现数据分页。通过Hibernate提供的API可以方便快捷地实现分页功能,而JDBC则需要更多的手动处理来构建合适的SQL语句和处理结果集。两种方法各有优势,开发者可以根据实际项目...

    本人理解hibernate 与 JDBC 的最本质区别

    标题中的“本人理解hibernate 与 JDBC 的最本质区别”揭示了我们即将探讨的核心主题:Hibernate 和 JDBC 在处理数据库操作时的不同之处。 Hibernate 是一个对象关系映射(ORM)框架,而 JDBC(Java Database ...

    JDBC Hibernate学习笔记

    ### JDBC与Hibernate学习笔记 ...JDBC提供了与数据库交互的低级API,而Hibernate则是在JDBC基础上构建的一个高级ORM框架,能够显著减少开发过程中与数据库交互所需的代码量,并提高了开发效率和应用程序的可维护性。

    分别使用Hibernate和JDBC操作数据库

    2. **Session接口**:类似于JDBC中的Connection,它是操作数据库的基本单元,提供事务管理和缓存管理。 3. **Entity类**:Java类代表数据库表,通过注解(@Entity)声明为Hibernate实体。 4. **持久化操作**:使用...

    hibernate3_jdbc_spring3_tomcat6(jar包)

    2. **JDBC**:了解了如何使用JDBC API进行基本的数据库操作,如加载驱动、建立连接、执行SQL语句和处理结果集。 3. **Spring 3**:掌握了Spring的IoC(控制反转)和DI(依赖注入)概念,可能使用了XML或注解方式...

    Jdbc 和hibernate

    标题 "Jdbc 和hibernate" 提到的两个主要概念是Java数据库连接(JDBC)和Hibernate,它们都是Java开发中用于与关系型数据库交互的重要技术。本文将深入探讨这两个技术,以及它们之间的区别和联系。 JDBC是Java平台...

    jdbc_Hibernate总结

    JDBC(Java Database Connectivity)是Java程序连接数据库的标准方式,其基本步骤包括实例化驱动、注册驱动、获取连接、创建Statement、执行SQL命令以及关闭资源。在实例化驱动时,通常有三种方法:通过...

    JDBC与Hibernate的比较

    ### JDBC与Hibernate的比较 在软件开发领域,尤其是在基于Java的应用程序中,数据库...通过对JDBC与Hibernate的深入比较,我们可以更好地理解这两种技术的特点及其适用场景,为实际开发中的技术选型提供有力的支持。

    hibernate jdbc需要用的jar

    这些依赖项需要根据具体项目需求添加到项目的类路径中,以便Hibernate能够正确识别和执行数据库操作。 为了配置Hibernate,开发者需要创建一个`hibernate.cfg.xml`配置文件,指定数据库连接信息(如URL、用户名、...

    类似hibernate的jdbc封装

    通过JDBC,开发者可以执行SQL查询、插入、更新和删除数据。然而,原生JDBC的使用较为繁琐,包括加载驱动、建立连接、创建Statement或PreparedStatement、处理结果集等步骤,这些都需要大量的重复代码。这就是为何...

    hibernate和jdbc测试

    对于性能测试,可以比较使用JDBC和Hibernate执行相同任务的时间消耗,评估哪种方式更高效。同时,要关注内存使用情况,因为ORM框架可能会增加内存开销。 在进行测试时,使用单元测试框架,如JUnit,可以帮助自动化...

    jdbc和hibernate学习内容

    JDBC(Java Database Connectivity)和Hibernate是Java中处理数据库操作的两个重要工具。对于初学者来说,理解和掌握这两个技术对于深入理解Java后端开发至关重要。 JDBC是Java API,它提供了一种标准的方式来连接...

    hibernate+junit+mysql-jdbc开发核心jar包三合一

    本资源“hibernate+junit+mysql-jdbc开发核心jar包三合一”显然是为了支持SSH框架中的Hibernate部分,并结合JUnit进行测试以及MySQL数据库连接。现在我们将详细探讨这三个组件及其在Java开发中的应用。 **Hibernate...

    oracle分别使用jdbc和hibernate的例子

    JDBC(Java Database Connectivity)和Hibernate是两种常见的与Oracle交互的方式。本文将深入探讨如何使用JDBC和Hibernate来操作Oracle数据库,同时结合提供的标签"源码"和"工具",我们将讨论它们的实现细节和优势。...

Global site tag (gtag.js) - Google Analytics