连接池问题!请指教!

lndlzcy 2004-10-01 12:01:22
在server.xml里的context和web.xml都已配置完成。
这是实现的BEAN:
package balancepack;

import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;

public class sqlBean{
public Connection conn=null;
Statement stmt=null;
public ResultSet rs=null;

public sqlBean(){///构造函数
}

public int executeInsert(String sql){
int num=0;
try{
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/webbalance");
conn=ds.getConnection();
Statement stmt=conn.createStatement();
num=stmt.executeUpdate(sql);
}
catch (NamingException ne) {
System.out.println("Initial DataSource error.");
ne.printStackTrace();
} catch (SQLException e) {
System.out.println("SQL SERVER: " + e);
e.printStackTrace();
System.out.print("Connection Full!");
}
CloseDataBase();
return num;
}

//display data
public ResultSet executeQuery(String sql){
rs=null;
try{
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/webbalance");
conn=ds.getConnection();
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch (NamingException ne) {
System.out.println("Initial DataSource error.");
ne.printStackTrace();
} catch (SQLException e) {
System.out.println("SQL SERVER: " + e);
e.printStackTrace();
System.out.print("Connection Full!");
}
CloseDataBase();
return rs;
}
// delete data
public int executeDelete(String sql){
int num=0;
try{
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/webbalance");
conn = ds.getConnection();
Statement stmt=conn.createStatement( );
num=stmt.executeUpdate(sql);
}
catch (NamingException ne) {
System.out.println("Initial DataSource error.");
ne.printStackTrace();
} catch (SQLException e) {
System.out.println("SQL SERVER: " + e);
e.printStackTrace();
System.out.print("Connection Full!");
}
CloseDataBase();
return num;
}
//////////////////
public void CloseDataBase(){
try{
conn.close();
}
catch(Exception end){
System.err.println("执行关闭Connection对象有错误:"+end.getMessage( ) );
System.out.print("执行执行关闭Connection对象有错误:有错误:"+end.getMessage()); //输出到客户端
}
}
}



现在在用连接池读取数据时提示如下错误:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.

请问这是为什么?还有,用到连接池的BEAN这样写是否正确和妥当?
刚看到篇帖子说不能直接把CON CLOSE掉,是这样么?

有经验的人帮忙指点下,谢谢了!
...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lndlzcy 2004-10-05
  • 打赏
  • 举报
回复
谢谢你的回复,结贴哦...
j2nix 2004-10-03
  • 打赏
  • 举报
回复
同意 sagittarius1979(缤纷眩目的世界里 是否拥有自己的色彩) 的看法。

如同JDBC 当你return rs; 前调用CloseDataBase()已经将联接断开,所以结果集肯定不存在了。
因为取数据时并不一次从数据库取出,而是在rs.next()时一条一条的取的。
lndlzcy 2004-10-01
  • 打赏
  • 举报
回复
哈哈,自己看出来了....
原来是....
真是猪眼啊....
CloseDataBase();
return rs;
在查询的时候居然先关DATABASE,然后取结果集,真笨啊!!

请问下,这么写BEAN从实际项目来说有什么问题么?就是请大家给我挑挑毛病啊!
lndlzcy 2004-10-01
  • 打赏
  • 举报
回复
晕,过了一夜还没人回复....
随着航天领域技术能力的持续提升,人造卫星的部署频次与在轨规模不断扩大,由此引发的空间目标碰撞风险已成为关键安全议题。为确保航天器在轨运行安全,必须构建有效的碰撞规避策略。本方案基于MATLAB/Simulink仿真环境,构建了一套完整的卫星碰撞规避仿真系统,用于模拟轨道动力学行为、识别碰撞威胁并生成规避机动指令。 系统首先建立精确的卫星轨道动力学模型。该模型依据牛顿力学与开普勒轨道定律,同时纳入地球非球形引力摄动、日月引力扰动及其他空间环境因素的影响,以准确描述卫星在复杂力场中的运动轨迹。 在动力学模型基础上,系统集成了实时碰撞预警模块。该模块持续监测卫星与周边空间目标之间的相对运动状态,通过位置与速度矢量的实时计算,快速识别潜在的近距离接近事件。一旦判定存在碰撞风险,系统随即启动规避策略计算单元。规避策略通常包括调整速度矢量、改变轨道高度或轨道倾角,乃至实施紧急变轨机动,以在确保安全的前提下最大限度地减少对原定任务的影响。 Simulink的图形化建模环境为系统各模块的集成与测试提供了便利。通过搭建包含动力学、预警与决策模块的仿真模型,可在统一平台中进行闭环测试与迭代优化,从而验证规避策略的有效性与实时性。 方案实施中需着重关注以下方面:系统需具备高可靠性及毫秒级响应能力,确保在极短时间内完成威胁评估与机动规划;规避策略应尽可能降低燃料消耗,延长卫星服役寿命;系统架构应保持开放性与可扩展性,以适应未来多星协同、星座运行等复杂场景。 基于MATLAB/Simulink的卫星碰撞规避仿真系统,不仅提升了在轨航天器的生存能力与任务可靠性,也为航天器设计、轨道控制与任务规划提供了重要的技术支撑,对促进航天工程的安全发展具有显著的实际价值。 资源来源于网络分享,仅用于学习交流使用,勿用于商业,如有侵权联系我删除!

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧