} 异常打印:有:1930 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed. at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.validateClosedState(Unknown Source) at com.microsoft.jdbc.base.BaseResultSet.validateClosedState(Unknown Source) at com.microsoft.jdbc.base.BaseResultSet.commonFetchInitialize(Unknown Source) at com.microsoft.jdbc.base.BaseResultSet.next(Unknown Source) at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:196) at net.segns.dataSource.DataSourceImp.eee(DataSourceImp.java:21) at net.segns.common.util.db.SQLHandle.main(SQLHandle.java:304)
Connection con = session.connection();
PreparedStatement ps = con.prepareStatement(select * from sys_area order by areaid);//预处理
ps.execute();//执行操作
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<description>sessionFactory</description> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingResources">
<list>
... <value>hibernatecfg/org_broadcastschedule.hbm.xml</value>
...
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
</beans>还有一点:异常前有一个
WARN ConnectionManager:376 - unclosed connection, forgot to call close() on your session?
警告,说我session没关,我郁闷了。。数据都没查询完就异常了,还说我没关session。
package net.segns.dataSource;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class DataSourceImp extends HibernateDaoSupport implements DataSource {
public Connection getConnection()
{
Connection conn=this.getSession().connection();
int c=0;
try {
PreparedStatement ps=conn.prepareStatement("select * from sys_area order by areaid");
ResultSet rs=ps.executeQuery();
while( rs.next())
c++;
rs.close();
ps.close();
conn.close();
} catch (Exception e) {
System.out.println("有:"+c);
e.printStackTrace();
}
return conn;
}}Spring配置:sessionfactory.xml<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<description>sessionFactory</description> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>hibernatecfg/org_broadcastschedule.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
</beans>Spring配置:DataSource.xml <bean id="DataSourceDAO"
class="net.segns.dataSource.DataSourceImp" >
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
测试方法:public static void main(String[] args) {
try {
DataSource ds=(DataSource)SpringApplicationContextFactory
.getService("DataSourceDAO");
ds.eee();
} catch (Exception e) {
e.printStackTrace();
}
}
异常打印:有:1930
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.validateClosedState(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.validateClosedState(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.commonFetchInitialize(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.next(Unknown Source)
at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:196)
at net.segns.dataSource.DataSourceImp.eee(DataSourceImp.java:21)
at net.segns.common.util.db.SQLHandle.main(SQLHandle.java:304)
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class DataSourceImp extends HibernateDaoSupport implements DataSource {
public void eee()
{
Connection conn=this.getSession().connection();
int c=0;
try {
PreparedStatement ps=conn.prepareStatement("select * from sys_area order by areaid");
ResultSet rs=ps.executeQuery();
while( rs.next())
c++;
rs.close();
ps.close();
conn.close();
} catch (Exception e) {
System.out.println("有:"+c);
e.printStackTrace();
}
}}