`
giky2323
  • 浏览: 28665 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在hibernate中使用jdbc处理复杂的sql语句

阅读更多
想写的SQL语句是:
insert into zycbltable1(danweiid,danweimc,regedittime,cs,zmkczd,zmkcwd,qckczd,qckcwd,bylrzd,bylrwd,bylczd,bylcwd,qmkczd,qmkcwd,tjrq)select left(danweiid,15),'余干',regedittime,count(ch),sum(zmkczd),sum(zmkcwd),sum(qckczd),sum(qckcwd),sum(bylrzd),sum(bylrwd),sum(bylczd),sum(bylcwd),sum(qmkczd),sum(qmkcwd),now() from zycbltable2 where year(regedittime)=2007 and month(regedittime)=12 group by left(danweiid,15)
     

参考文章:

在现有的spring 整和的hibernate框架中,hibernate不能处理一些复杂的带有数据库参数的SQL语句,所以采用jdbc的方法进行处理,具体处理方法如下:

关键是Session session = getSession(); 的获取方法参见:http://ghsea.iteye.com/category/16268?list=1 Spring整合Hibernate

public List getProcontentUndergcid(Long proid)
{  
      List procontList = null;
      Session session = getSession();
      Connection connection = session.connection();
      try{
      Statement stmt = connection.createStatement();
      ResultSet rs = stmt.executeQuery("select   sum(decimal(conitem2,10,2)) as aa ,comid from UBL_PROCONTENT where proid="+proid+" group by  comid");
      this.readDataListFromRs(rs);
       rs.close();
       session.close();
      }catch(Exception e){

      }
      return procontList;
     }



/**
    * 读取值对象列表
    * @param rs 结果集
    * @return 从结果集中读取的对象列表
    */
   private List readDataListFromRs(ResultSet rs) throws SQLException {
     List arr = new ArrayList();
     UblProcontent procontent = null;
     try{
       while (rs.next()) {
       procontent = new UblProcontent();
       //将字段值set到值对象中
       procontent.setConitem2(rs.getString("aa"));
       logger.info("合计数量为"+rs.getString("aa"));
       procontent.setCondemo(rs.getString("comid"));
       logger.info("编号为--"+rs.getString("comid"));
       arr.add(procontent);
       }
     }catch( Exception ex ){
        ex.printStackTrace();
     }
     return arr;
   }




修改了获得session的方法,我获得session的方法是:
Session session = getHibernateTemplate().getSessionFactory().openSession();
分享到:
评论

相关推荐

    让hibernate输出sql语句参数配置.doc

    hibernate.use_sql_comments 参数用于如果开启,Hibernate 将在 SQL 中生成有助于调试的注释信息。其取值为 true 或 false。 14. hibernate.jdbc.fetch_size hibernate.jdbc.fetch_size 参数用于指定 JDBC 抓取...

    连接jdbc时sql语句统一设置参数

    本篇将深入讲解如何在使用JDBC时,通过统一的方式设置SQL语句中的参数,提高代码的可读性、可维护性和安全性。我们将探讨以下知识点: 1. JDBC基础: JDBC是Java平台中用于与关系数据库交互的一组接口和类。它提供...

    P6SPY JDBC拦截打印sql语句 非常好的调试工具

    P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...

    采用p6spy完整显示hibernate的SQL语句

    在开发和调试基于Hibernate的Java应用时,有时我们需要获取到SQL语句的完整形式,而不仅仅是Hibernate默认输出的参数化形式。在这种情况下,P6Spy是一个非常有用的工具。P6Spy是一个开源的JDBC代理库,它允许我们...

    spring+hibernate,自己封装了原生sql的处理,模仿mybatis使用

    这样的设计提供了更多的灵活性,尤其是在处理复杂查询或性能调优时。开发者可能为了项目需求,或是对现有MyBatis的扩展或简化,创建了自己的SQL解析器,以便在Spring+Hibernate的环境中更便捷地使用自定义SQL。 在...

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

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

    kingbaseV8 hibernate jdbc 驱动

    在标题和描述中提到的"kingbaseV8 hibernate jdbc驱动",意味着我们需要关注如何在Hibernate框架中使用KingbaseV8的JDBC驱动进行数据操作。 JDBC(Java Database Connectivity)是Java中用于连接数据库的标准接口,...

    使用p6spy完整显示hibernate的SQL语句

    4. **启用Hibernate SQL日志**:在Hibernate的配置中,你需要开启SQL语句的日志输出,通常是通过设置`hibernate.show_sql`和`hibernate.format_sql`属性为`true`。 5. **测试和分析**:一旦配置完成,运行你的应用...

    Hibernate and JDBC

    - **性能问题**:对于某些复杂查询,Hibernate可能无法达到最佳性能,尤其是在处理大量数据时。 - **学习曲线**:虽然Hibernate简化了许多操作,但对于新手来说,理解其核心概念和配置仍需一定时间。 - **灵活性限制...

    spring_Framework+经典SQL语句大全+Hibernate中文API

    4. 示例代码或项目:可能包含了一些使用Spring和Hibernate的示例程序,展示如何在实际开发中整合这两个框架,以及如何编写和执行SQL语句。 学习并掌握Spring Framework、经典SQL语句和Hibernate,对于Java开发人员...

    JDBC与Hibernate区别

    而Hibernate虽然在某些情况下可能略逊一筹,但在处理复杂对象模型和持久化逻辑时,其自动化特性减少了大量手动工作。此外,Hibernate支持缓存机制,可以通过二级缓存提高性能,尤其是在查询小部分数据时,Iterator...

    struts+hibernate+jdbc双表查询

    虽然Hibernate可以简化数据操作,但在某些复杂查询或性能优化时,开发者可能直接使用JDBC编写SQL语句以获取更高的灵活性和效率。在双表查询中,JDBC可以用于编写自定义的JOIN查询,以满足特定的需求。 在实际项目中...

    hibernate实现动态SQL查询

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑解耦,从而...在处理复杂业务逻辑时,动态SQL查询能够帮助我们更好地应对变化,减少代码重复,提升开发效率。

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

    JDBC提供了连接数据库、发送SQL语句、处理结果集等基本功能。以下是一些使用JDBC的关键知识点: 1. **连接数据库**:通过`Class.forName()`加载驱动,然后使用`DriverManager.getConnection()`建立连接。 2. **创建...

    在JDBC,hibernate中实现分页

    本文将深入探讨如何在Java开发环境中使用Hibernate框架以及JDBC结合SQL Server 2005来实现数据分页功能。 #### Hibernate中的分页实现 在Hibernate框架中实现分页功能相对较为简单。通过`Query`对象提供的方法即可...

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

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

    java代码中的sql语句处理.rar_JAVA SQL处理

    在Java编程中,SQL语句处理是至关重要的一个环节,特别是在开发...通过学习和实践提供的压缩包中的内容,你将能够更好地理解如何在Java项目中高效、安全地使用和处理SQL语句,特别是那些原本在PL/SQL中定义的复杂逻辑。

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

    在给定的"SuperHibernateEntityDao.java"文件中,可能包含了一个自定义的DAO基类,该类扩展了Hibernate的通用DAO操作,并可能实现了JDBC SQL分页的方法。这样的类通常会有一个用于执行分页查询的方法,比如`...

    hibernate + shardingjdbc +springboot 结合做的demo

    - **编写业务代码**:使用Hibernate的Session接口进行数据的CRUD操作,而ShardingJDBC会在背后透明地处理分片逻辑,确保数据正确路由到相应的数据库实例。 - **测试和优化**:运行应用,进行单元测试和集成测试,...

    java操作mysql数据库,不写sql语句版

    在Java编程中,与MySQL数据库交互通常涉及到使用SQL语句来执行CRUD(创建、读取、更新、删除)操作。然而,为了提高代码的可维护性和安全性,开发者可以选择使用ORM(对象关系映射)框架,如Hibernate或MyBatis,...

Global site tag (gtag.js) - Google Analytics