java 连接firebird 数据库,执行完代码后链接不释放,求大神解答下,在线等 30

publicvoidupdatesql(Stringusername,Stringpassword,Stringsql){org.firebirdsql.pool.FBW... public void updatesql(String username,String password,String sql){
org.firebirdsql.pool.FBWrappingDataSource dataSource =
new org.firebirdsql.pool.FBWrappingDataSource();
dataSource.setDatabase ("localhost/3050:D:/Program Files/Firebird/Firebird_2_5/db/SECURITY_SENSEDATA2.FDB");
dataSource.setDescription ("dbconnect func");
dataSource.setType("TYPE4");
dataSource.setEncoding("ISO8859_1");
java.sql.Statement stat=null;
java.sql.Connection conn=null;
try {
dataSource.setLoginTimeout (10);
conn = dataSource.getConnection (username, password);
stat = conn.createStatement();
System.out.println("establisted: "+stat);
String sqlstr=sql;
stat.executeUpdate(sqlstr);

stat.close();
conn.close();
}
catch(java.sql.SQLException e) {
e.printStackTrace();
System.out.println ("sql exception: " + e.getMessage ());
}
}
执行完conn.close()之后,在数据库查看 用户还是处于登录状态,我每个文件都会执行这个代码一次,几百次之后,系统就挂掉了,报类似的错误:
at org.firebirdsql.jdbc.AbstractStatement.checkValidity(AbstractStatement.java:1522)
at org.firebirdsql.jdbc.AbstractStatement.executeUpdate(AbstractStatement.java:269)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.firebirdsql.pool.StatementHandler.invoke(StatementHandler.java:107)
at $Proxy1.executeUpdate(Unknown Source)
at security.filebirdconn.updatesql(filebirdconn.java:56)
at security.filtcsvfile.filtfiledb(filtcsvfile.java:114)
at security.filtcsvfile.filtfile(filtcsvfile.java:178)
at security.filtcsvfile.main(filtcsvfile.java:206)
展开
 我来答
makeio
2014-11-06 · TA获得超过393个赞
知道小有建树答主
回答量:253
采纳率:54%
帮助的人:117万
展开全部
不能这么写, 在关闭连接之前先得判断这个连接是什么状态!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式