public class CompareFundDAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(TbSourceDAO.class);
@SuppressWarnings("unchecked")
public List<CompareFund> getCompareResult(String month){
try{
String where = "qymc not like '%测试%' and qymc not like '%hxtest%' and qymc not like '%zjca%' and qymc not like '%浙江ca%' and dqzt = '新领' and status > 0 and";
String hql1 = "select count(*)*500 from TbHx where "+where+" dqxzh = ? and indate <= ? and indate >= ?";
String hql2 = "select count(*)*500 from TbHx where "+where+" dqxzh = ? ";
List list = new ArrayList<CompareFund>();
TbBankStaticsDAO bankStaticsDAO = new TbBankStaticsDAO();
List baklist = bankStaticsDAO.findStaticRecord("", month);
if(baklist == null || baklist.size()==0){
log.error("没有这个月的数据");
return null;
}
Iterator it = baklist.iterator();
while(it.hasNext()){
TbBankStatics bankStatics = (TbBankStatics)it.next();
CompareFund compareFund = new CompareFund();
compareFund.setRaName(bankStatics.getTbRajg().getRaName());
compareFund.setIndate(bankStatics.getIndate());
compareFund.setIndateb(bankStatics.getIndateb());
compareFund.setAllmoney(bankStatics.getAllsum());
compareFund.setMonthmoney(bankStatics.getMonthmoney()+bankStatics.getMonthjust());
compareFund.setYearmoney(bankStatics.getYearmoney());
Double monthys = getYs(hql1, bankStatics, true);
compareFund.setMonthys(monthys);
Calendar calendar = Calendar.getInstance();
calendar.setTime(bankStatics.getIndateb());
calendar.set(Calendar.MONTH,1);
calendar.set(Calendar.DAY_OF_MONTH,1);
bankStatics.setIndate(calendar.getTime());
Double yearys = getYs(hql1, bankStatics, true);
compareFund.setYearys(yearys);
Double allys = getYs(hql2, bankStatics, false);
compareFund.setAllys(allys);
compareFund.setAllmargin(allys-bankStatics.getAllsum());
compareFund.setYearmargin(yearys-bankStatics.getYearmoney());
compareFund.setMonthmargin(monthys-bankStatics.getMonthmoney()-bankStatics.getMonthjust());
list.add(compareFund);
}
return list;
}catch(RuntimeException re){
throw re;
}
}
public Double getYs(String hql,TbBankStatics bankStatics,boolean chooes ){
Session session = null;
try {
session = getSession();
Query q = session.createQuery(hql);
q.setString(0, bankStatics.getTbRajg().getRaId());
if(chooes){
q.setDate(1, bankStatics.getIndate());
q.setDate(2, bankStatics.getIndateb());
}
Double money = ((Integer)q.list().get(0)).doubleValue();
return money;
}catch(RuntimeException re){
throw re;
}finally{
closeSession();//或者session.close()都不行
}
}
}
可以执行几次循环(不确定的,随机),然后就暴错 ERROR (JDBCExceptionReporter.java:72) - 关闭的语句: next
谁碰到过好郁闷.
分享到:
相关推荐
《SQLJDBC4-4.0.jar:微软SQL Server与Java的桥梁》 在Java编程环境中,连接数据库是一项常见的任务,而SQLJDBC4-4.0.jar是Microsoft SQL Server数据库管理系统与Java应用程序之间交互的重要组件。这个jar文件是...
GBase JDBC 8.3.81.53 是一款专为GBase数据库设计的Java数据库连接器(Java Database Connectivity,简称JDBC),它允许Java应用程序通过标准的JDBC接口与GBase数据库进行通信和数据操作。GBase是南大通用数据系统...
MySQL JDBC驱动程序是Java应用程序与MySQL数据库之间通信的桥梁,它允许Java开发者使用SQL语句执行数据库操作。在本文中,我们将深入探讨`com.mysql.jdbc_5.1.5.jar`,这是一个针对MySQL数据库的JDBC驱动程序版本,...
1. **JDBC连接**: 连接Oracle数据库通常涉及以下步骤:加载驱动、建立连接、执行SQL语句和关闭连接。例如,使用`Class.forName()`加载驱动,`DriverManager.getConnection()`创建连接。 2. **DataSource接口**: ...
7. **错误处理**:当出现错误时,`SQLException`会被抛出,其中包含了错误代码和错误消息,帮助开发者定位问题。 8. **版本更新**:随着时间的推移,微软会发布新的驱动版本,以解决已知问题、添加新功能和提高对新...
Hive JDBC Uber 2.6.5.0-292驱动是Apache Hive与Java数据库连接(JDBC)之间的桥梁,允许用户通过编程语言(如Java、Python等)或者数据库管理工具(如Dbeaver)与Hive进行交互。这个驱动程序集成了所有必要的依赖,...
此外,为了优化性能,可以使用`clickhouse-jdbc`的批处理特性,一次性发送多个SQL语句到Clickhouse服务器。 总的来说,`clickhouse-jdbc-0.1.50d.zip`文件提供了连接和操作Clickhouse数据库的关键工具,使得Java...
在这个例子中,我们首先加载了HiveDriver,然后建立了到Hive服务的连接,执行了一个简单的查询,并打印出结果集中的每一行第一列的数据,最后关闭了连接和语句。 总的来说,Hive JDBC Uber Driver 2.6.5.0-292.jar...
7. **错误处理**:JDBC驱动会抛出`SQLException`来表示数据库操作中的错误。开发者需要捕获并适当地处理这些异常。 8. **示例代码**:提供的官方sample可以帮助开发者了解如何使用驱动进行实际操作,如创建连接、...
版本号3.32.3.2表明这是SQLite JDBC驱动的一个更新,可能包含了性能优化、错误修复或新的功能。 "mips64elloongarch64"是指MIPS架构的一种变体,主要用于高性能计算和嵌入式设备。MIPS(Microprocessor without ...
Oracle和SQL Server是两种广泛应用的关系型数据库管理系统,广泛用于企业级的数据存储和处理。这个"Oracl+SQLServer驱动包"显然包含了用于连接这两...在实际应用中,还需考虑错误处理、事务管理和并发控制等复杂问题。
此外,JDBC 6.0版本可能引入了一些新特性,例如增强的性能优化、更好的错误处理机制、支持更多的数据库特性(如XML类型处理、存储过程的调用等)以及对Java 8特性的兼容。开发者在实际应用中应参考官方文档,了解...
SQL Server JDBC驱动的版本"4.0.2206.100_chs"是针对中国市场的中文版本,意味着它不仅提供了英文版本的所有功能,还特别优化了中文环境下的使用体验,包括错误信息和文档的汉化,使得国内开发者能够更方便地理解和...
7. 关闭资源:完成操作后,记得关闭`ResultSet`, `Statement`和`Connection`以释放资源。 此外,SQL JDBC驱动还提供了高级功能,如支持存储过程、游标、批处理、JNDI查找、连接池等。同时,微软的驱动还具有良好的...
- **SQLException**:所有JDBC异常的基类,用于处理数据库操作中可能出现的错误。 ### JDBC基础应用 创建一个基本的JDBC应用程序涉及以下步骤: 1. **导入JDBC类或包**:首先需要在程序中导入java.sql.*或其他...
JDBC是Java中的一个接口,提供了一组方法来连接数据库、执行SQL语句以及处理结果集。核心类包括`DriverManager`、`Connection`、`Statement`和`ResultSet`。`DriverManager`负责管理数据库驱动,`Connection`代表...
ojdbc6-11.2.0.1.0 .zip文件就是Oracle公司为Java应用程序提供的一个特定版本的JDBC驱动程序包,用于解决"Could not find artifact com.oracle:ojdbc6:pom:11.2.0.1.0"的错误。这个错误通常出现在Maven或Gradle构建...
- 错误处理:使用try-catch-finally结构,确保资源如`Connection`、`Statement`和`ResultSet`在使用后正确关闭。 - 预编译SQL语句(PreparedStatement):提高性能并防止SQL注入攻击。 - 使用连接池:例如C3P0、...
DmJdbcDriver18支持JDBC的多种特性,如批处理、预编译的SQL语句、事务管理等,提升了数据库操作的效率和安全性。此外,它还具备良好的性能优化,如支持大数据量的读写,以及并发处理能力。 在实际应用中,开发者...
它实现了Java Database Connectivity (JDBC) API,使得开发者可以使用Java语言来操作Oracle数据库,执行SQL语句,进行数据查询、插入、更新和删除等操作。Oracle JDBC驱动分为不同版本,包括 Thin、OCI、JDBC-ODBC ...