`

Hibernate补充

阅读更多

Hibernate调用SQL语句

try {
   session = getSession();
   con = session.connection();
   con.setAutoCommit(true);
   stmt = con.createStatement();
   
   String sql = "SELECT systemName, pair FROM TblSystemPerformance GROUP BY systemName, pair" +
     " ORDER BY systemName, pair";
   
   rs = stmt.executeQuery(sql);

   rs = stmt.getResultSet();
   if (rs == null) {
    throw new Exception("No system pair found in TblSystemPerformance");
   }

   while (rs.next()) {
    String systemName = rs.getString("systemName");
    String pair = rs.getString("pair");
    result.add(systemName + "," + pair);
   }
  } catch (Exception e) {
   System.out.println(e.getMessage());
   e.printStackTrace();
   throw e;
  } finally {
   closeConn(con, stmt, rs);
   session.close();
  }

 

Hibernate调用存储过程

 

 

try {
   session = getSession();
   con = session.connection();
   con.setAutoCommit(true);
   String sql = "{call SPSearchSystemPerformance"
    + "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
   stmt = con.prepareCall(sql);
   stmt.setString("_systemName", pcdto.getSystemName());
   stmt.setString("_pair", pcdto.getPair());
   stmt.setDouble("_grossPlMax", pcdto.getGrossPlMax());
   stmt.setDouble("_grossPlMin", pcdto.getGrossPlMin());
   ...
   if (pcdto.getCalcMonth() != null) {
    stmt.setDate("_calcDate",  new java.sql.Date(pcdto.getCalcMonth().getTime()));
   } else {
    stmt.setDate("_calcDate", null);
   }
   
   stmt.execute();

   rs = stmt.getResultSet();
   if (rs == null) {
    return result;
   }

   while (rs.next()) {
    TblSystemPerformance strategy = new TblSystemPerformance();
    strategy.setSystemId(rs.getLong("systemID"));
    strategy.setSystemName(rs.getString("systemName"));
    strategy.setPair(rs.getString("pair"));
    ...
    strategy.setCalcStartDate(rs.getDate("calcStartDate"));
    result.add(strategy);
   }
  } catch (Exception e) {
   System.out.println(e.getMessage());
   e.printStackTrace();
   throw e;
  } finally {
   closeConn(con, stmt, rs);
   session.close();
  }

 

 

DELIMITER $$

DROP PROCEDURE IF EXISTS `fxmonkey`.`SPSearchSystemPerformance` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SPSearchSystemPerformance`(
   _systemName VARCHAR(30),
   _pair  VARCHAR(20),
   _grossPlMax   DOUBLE ,
 _grossPlMin   DOUBLE ,
 ...
   _calcDate DATE
)
BEGIN

DECLARE _sql VARCHAR(2000);

SET @sql = '
SELECT systemID, systemName,pair, grossPL, pl,
       numTrades, maxDD, profitFactor, pipsTrade, creationDate,
       avgTradeTime, maxPos, riskAdjust, winPercent, po,
       otherAPT, otherALT, otherLWT, otherLLT, otherDIS,
       calcStartDate, calcEndDate
FROM TblSystemPerformance
WHERE 1 = 1
';

SET @sql = CONCAT(@sql, ' AND grossPL >= ' , _grossPlMin ,
                        ' AND grossPL <= ' , _grossPlMax , ' ');
SET @sql = CONCAT(@sql, ' AND pl >= ' , _plMin ,
                        ' AND pl <= ' , _plMax , ' ');
...
IF (_calcDate IS NOT NULL) THEN
SET @sql = CONCAT(@sql, ' AND YEAR(calcStartDate) = ', YEAR(_calcDate) ,
                        ' AND MONTH(calcStartDate) = ', MONTH(_calcDate), ' ');
END IF;
IF (_creationDate IS NOT NULL) THEN
SET @sql = CONCAT(@sql, ' AND creationDate >= ', _creationDate ,' ');
END IF;
IF (_systemName IS NOT NULL) THEN
SET @sql = CONCAT(@sql, ' AND systemName = ''', _systemName , ''' ');
END IF;
IF (_pair IS NOT NULL) THEN
SET @sql = CONCAT(@sql, ' AND pair LIKE ''%', _pair , '%'' ');
END IF;


PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

 

END $$

DELIMITER ;

分享到:
评论

相关推荐

    hibernate补充包

    在你提供的"hibernate补充包"中,包含了以下关键组件: 1. **ASM**: ASM是一个小型且快速的Java字节码处理库,用于动态生成类或者增强已有类的功能。在Hibernate中,ASM主要用于动态生成代理类,以实现懒加载、事件...

    Struts+Spring+Hibernate补充内容

    ### Struts+Spring+Hibernate框架整合相关知识点 #### 一、环境配置与依赖管理 **1.1 解决类冲突问题** 在使用Struts+Spring+Hibernate(简称SSH)进行项目开发时,可能会遇到类冲突的情况。特别是当涉及到Tomcat...

    Hibernate教程24_Hibernate的补充_list与iterator

    【标题】"Hibernate教程24_Hibernate的补充_list与iterator" 在Java开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,极大地简化了数据库操作。本教程将重点讲解在使用Hibernate时,如何处理查询结果集合...

    Hibernate-extensions 完整安装包

    Hibernate-Extensions是对基本Hibernate功能的补充,它提供了一些额外的特性,如延迟加载策略、生成SQL日志、实体监听器、时间戳更新等。这些扩展使得开发者能够更加灵活地处理数据库操作,同时保持代码的整洁和可...

    Hibernate几本书补充1

    《Hibernate几本书补充1》包含了两本关于Hibernate的重要著作——《Hibernate Quickly》和《Hibernate Search in Action》。Hibernate是Java领域广泛使用的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得...

    6 用Properties补充hibernate.cfg.xml配置

    本文将探讨如何使用`Properties`类来补充`hibernate.cfg.xml`的配置,以实现更加灵活和模块化的设置。 首先,`hibernate.cfg.xml`文件通常包含了以下关键元素: 1. **数据库连接信息**:如数据库URL、用户名、密码...

    hibernate中文帮助文档

    3. 通过XML覆写元数据:虽然注解是主要的配置方式,但Hibernate也允许通过XML文件来覆盖或补充注解配置,提供了更大的灵活性。 4. Hibernate验证器:Hibernate提供了内置的验证机制,允许开发者通过注解在领域模型...

    框架lib补充包括struts和hibernate

    在"lib补充"这个压缩包中,可能包含了Struts和Hibernate的库文件,这些库文件是使用这两个框架进行开发所必需的。开发者可以将这些库添加到项目的类路径中,以便在项目中引入并使用这两个框架。在导入这些库后,...

    Hibernate3.3jar包

    10. ** Criteria API**: 作为HQL的补充,Criteria API允许动态构建查询,避免硬编码HQL字符串,提高了代码的可读性和维护性。 11. **注解配置**: Hibernate 3.3开始支持注解配置,使得开发者可以在类和属性级别直接...

    jap+hibernate4实现

    此外,Hibernate还提供了HQL(Hibernate Query Language)作为补充。 通过以上步骤,你就可以成功地将JPA与Hibernate 4整合,享受到标准API带来的便利性和Hibernate的丰富功能。这种结合提供了更好的可移植性,同时...

    尚学堂hibernate学习笔记(原版整理)

    12. **补充话题** 除了基础内容外,笔记还可能包含一些扩展话题,如二级缓存、事件监听器、CGLIB动态代理等,以拓宽读者的视野。 学习风格: - 先整体后局部:建议先从整体理解Hibernate的架构和工作流程,再深入...

    马士兵hibernate hibernate

    12. **补充话题**:强调了主动学习和查阅一手文档的重要性,以及遇到问题时的解决方法,如错误分析、比较法等。 为了开始学习hibernate,你需要准备hibernate的相关jar包,包括核心库和注解库,以及MySQL的JDBC驱动...

    hibernate-3.6.8-doc-zh

    5. `extras` 目录:可能包含额外的示例代码、教程或其他补充材料,对于深入学习非常有帮助。 四、关键概念解析 1. Session:是Hibernate中的核心接口,它负责与数据库进行交互,提供了保存、更新、删除对象和执行...

    孙卫琴精通hibernate part1

    在后续的章节中,`appendixA`、`appendixB`和`appendixC`可能是对特定主题的补充,如 Hibenate的缓存机制、多对一、一对多、多对多的关系映射,或者更高级的主题,如懒加载、级联操作、自定义类型等。这些内容对于...

    Hibernate中文开发文档API.zip

    - "HibernateAPI_cn"可能是另一个版本或补充的中文API文档,可能包含更详细的示例或特定主题的深入探讨。 通过这些文档,开发者能够深入了解Hibernate框架的每一个细节,从而高效地利用Hibernate进行Java应用的...

    Hibernate_3.2中文手册(chm+pdf)

    此外,《Hibernate Reference 3.3.2 GA》可能是针对稍后版本的参考文档,尽管版本号不同,但很多核心概念和用法是通用的,可以作为对3.2版本的补充学习资源。阅读这两份文档,开发者能够全面掌握Hibernate的使用,...

    马士兵Hibernate文档

    “马士兵Hibernate文档”是一份非常宝贵的资源,对于想要深入学习Hibernate框架的开发者来说,这份文档不仅可以作为视频教程的补充材料,还能作为日常开发工作中的参考指南。通过系统学习这份文档,开发者能够更加...

    Hibernate教程17_继承映射_补充2

    在本教程中,我们将深入探讨Hibernate中的继承映射,特别是在"Hibernate教程17_继承映射_补充2"中所涉及的主题。Hibernate是Java中一个非常流行的对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库...

    Hibernate中所有包作用详细讲解

    这些工具类通常提供了对标准库的补充或增强。Hibernate使用这个库来处理各种基础类型的逻辑操作。 #### 8. commons-logging.jar Apache Commons Logging 是一个灵活的日志记录抽象层,它允许应用程序指定日志记录的...

    孙卫琴 精通hibernate源码上

    8. **Appendix A, B, C**:附录通常用来补充正文中的内容,可能是对某些高级主题的深入探讨,如性能调优、自定义类型、JPA(Java Persistence API)与Hibernate的关系,或者是常见问题和解决方案的集合。 通过学习...

Global site tag (gtag.js) - Google Analytics