`
swit1983
  • 浏览: 1741 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

JDBC错误:关闭的语句.

阅读更多
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
谁碰到过好郁闷.
分享到:
评论
2 楼 swit1983 2008-05-19  
魔力猫咪 写道
你要注意,如果循环时间太长,就有可能让数据库主动和你断开连接。比如MySQL等数据库在连接时间过长的时候就肯能自动断开。

时间不长 几秒钟就暴错了. 连接池配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's.
	Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
	<proxool>
		<alias>ozmax09</alias>
		<driver-url>
			jdbc:oracle:thin:@192.168.0.19:1521:ozmax09
		</driver-url>
		<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
		<driver-properties>
			<property name="user" value="****" />
			<property name="*****" value="zmxzmx" />
		</driver-properties>
		<house-keeping-test-sql>
			select sysdate from DUAL
		</house-keeping-test-sql>
		<house-keeping-sleep-time>90000</house-keeping-sleep-time>
		<maximum-new-connections>100</maximum-new-connections>
		<prototype-count>5</prototype-count>
		<maximum-connection-count>500</maximum-connection-count>
		<minimum-connection-count>0</minimum-connection-count>
		<maximum-active-time>0</maximum-active-time>
	</proxool>
</something-else-entirely>
1 楼 魔力猫咪 2008-05-19  
你要注意,如果循环时间太长,就有可能让数据库主动和你断开连接。比如MySQL等数据库在连接时间过长的时候就肯能自动断开。

相关推荐

    sqljdbc4-4.0.jar

    《SQLJDBC4-4.0.jar:微软SQL Server与Java的桥梁》 在Java编程环境中,连接数据库是一项常见的任务,而SQLJDBC4-4.0.jar是Microsoft SQL Server数据库管理系统与Java应用程序之间交互的重要组件。这个jar文件是...

    GBase JDBC 8.3.81.53.zip

    GBase JDBC 8.3.81.53 是一款专为GBase数据库设计的Java数据库连接器(Java Database Connectivity,简称JDBC),它允许Java应用程序通过标准的JDBC接口与GBase数据库进行通信和数据操作。GBase是南大通用数据系统...

    com.mysql.jdbc_5.1.5.jar.zip

    MySQL JDBC驱动程序是Java应用程序与MySQL数据库之间通信的桥梁,它允许Java开发者使用SQL语句执行数据库操作。在本文中,我们将深入探讨`com.mysql.jdbc_5.1.5.jar`,这是一个针对MySQL数据库的JDBC驱动程序版本,...

    oracle-jdbc-12.2.0.1.zip

    1. **JDBC连接**: 连接Oracle数据库通常涉及以下步骤:加载驱动、建立连接、执行SQL语句和关闭连接。例如,使用`Class.forName()`加载驱动,`DriverManager.getConnection()`创建连接。 2. **DataSource接口**: ...

    sqljdbc_3.0.1301.101_enu

    7. **错误处理**:当出现错误时,`SQLException`会被抛出,其中包含了错误代码和错误消息,帮助开发者定位问题。 8. **版本更新**:随着时间的推移,微软会发布新的驱动版本,以解决已知问题、添加新功能和提高对新...

    hive-jdbc-uber-2.6.5.0-292.jar驱动

    Hive JDBC Uber 2.6.5.0-292驱动是Apache Hive与Java数据库连接(JDBC)之间的桥梁,允许用户通过编程语言(如Java、Python等)或者数据库管理工具(如Dbeaver)与Hive进行交互。这个驱动程序集成了所有必要的依赖,...

    clickhouse-jdbc-0.1.50d.zip

    此外,为了优化性能,可以使用`clickhouse-jdbc`的批处理特性,一次性发送多个SQL语句到Clickhouse服务器。 总的来说,`clickhouse-jdbc-0.1.50d.zip`文件提供了连接和操作Clickhouse数据库的关键工具,使得Java...

    hive-jdbc-uber-2.6.5.0-292.jar

    在这个例子中,我们首先加载了HiveDriver,然后建立了到Hive服务的连接,执行了一个简单的查询,并打印出结果集中的每一行第一列的数据,最后关闭了连接和语句。 总的来说,Hive JDBC Uber Driver 2.6.5.0-292.jar...

    sqljdbc_6.0.8112.200_chs.rar

    7. **错误处理**:JDBC驱动会抛出`SQLException`来表示数据库操作中的错误。开发者需要捕获并适当地处理这些异常。 8. **示例代码**:提供的官方sample可以帮助开发者了解如何使用驱动进行实际操作,如创建连接、...

    sqlite-jdbc-3.32.3.2.jar,支持mips64elloongarch64可

    版本号3.32.3.2表明这是SQLite JDBC驱动的一个更新,可能包含了性能优化、错误修复或新的功能。 "mips64elloongarch64"是指MIPS架构的一种变体,主要用于高性能计算和嵌入式设备。MIPS(Microprocessor without ...

    Oracl+SQLServer驱动包

    Oracle和SQL Server是两种广泛应用的关系型数据库管理系统,广泛用于企业级的数据存储和处理。这个"Oracl+SQLServer驱动包"显然包含了用于连接这两...在实际应用中,还需考虑错误处理、事务管理和并发控制等复杂问题。

    sqljdbc_6.0

    此外,JDBC 6.0版本可能引入了一些新特性,例如增强的性能优化、更好的错误处理机制、支持更多的数据库特性(如XML类型处理、存储过程的调用等)以及对Java 8特性的兼容。开发者在实际应用中应参考官方文档,了解...

    sqljdbc_4.0.2206.100_chs.rar

    SQL Server JDBC驱动的版本"4.0.2206.100_chs"是针对中国市场的中文版本,意味着它不仅提供了英文版本的所有功能,还特别优化了中文环境下的使用体验,包括错误信息和文档的汉化,使得国内开发者能够更方便地理解和...

    sqljdbc_3.0,4.0 连接sqlserver数据库使用的jar包

    7. 关闭资源:完成操作后,记得关闭`ResultSet`, `Statement`和`Connection`以释放资源。 此外,SQL JDBC驱动还提供了高级功能,如支持存储过程、游标、批处理、JNDI查找、连接池等。同时,微软的驱动还具有良好的...

    JDBC与Java数据库编程.pdf

    - **SQLException**:所有JDBC异常的基类,用于处理数据库操作中可能出现的错误。 ### JDBC基础应用 创建一个基本的JDBC应用程序涉及以下步骤: 1. **导入JDBC类或包**:首先需要在程序中导入java.sql.*或其他...

    MySql的JDBC封装项目源代码.zip

    JDBC是Java中的一个接口,提供了一组方法来连接数据库、执行SQL语句以及处理结果集。核心类包括`DriverManager`、`Connection`、`Statement`和`ResultSet`。`DriverManager`负责管理数据库驱动,`Connection`代表...

    ojdbc6-11.2.0.1.0 .zip

    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构建...

    JDBC连接各种数据库经验技巧集萃

    - 错误处理:使用try-catch-finally结构,确保资源如`Connection`、`Statement`和`ResultSet`在使用后正确关闭。 - 预编译SQL语句(PreparedStatement):提高性能并防止SQL注入攻击。 - 使用连接池:例如C3P0、...

    DmJdbcDriver18_DmJdbcDriver18_

    DmJdbcDriver18支持JDBC的多种特性,如批处理、预编译的SQL语句、事务管理等,提升了数据库操作的效率和安全性。此外,它还具备良好的性能优化,如支持大数据量的读写,以及并发处理能力。 在实际应用中,开发者...

    oracle jdbc dirver

    它实现了Java Database Connectivity (JDBC) API,使得开发者可以使用Java语言来操作Oracle数据库,执行SQL语句,进行数据查询、插入、更新和删除等操作。Oracle JDBC驱动分为不同版本,包括 Thin、OCI、JDBC-ODBC ...

Global site tag (gtag.js) - Google Analytics