站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题关于jsp连接oracle过多的问题,百分求解

关于jsp连接oracle过多的问题,百分求解

摘要: 关于jsp连接oracle过多的问题,百分求解


各位高手,我在连接oracle的时候常常这样写
DBConnection db = new DBConnection();
str_sql="select * from ....";
ResultSet rs = db.execQuery(str_sql);
...
rs.close();
...
str_sql="select ....";
rs=db.execQuery(str_sql);
...
rs.close();
....
str_sql="update....";
db.execUpdate(str_sql);
...
db.close();
如此这般写法,结果在oracle中出现n多个连接同时连接数据库,导致系统越来越慢,不知我的写法错了么?还是有其他办法解决这个矛盾!
是不是每次都要建立一个数据库连接,接着马上就关掉呢?
还有,我有时在处理一个业务逻辑的时候,半途要连接一个新的页面做些查询的动作,也要打开数据库连接,这个时候,如果主窗口的数据库连接没有关掉,是否也就产生了多个连接呢?求各位大虾给我个比较易懂的解决方案!多谢了



建议楼主,写个数据库的连接池吧,


对,用连接池。


你可以在DBConnection类里加一个静态字段用来表示当前的连接数,跟踪一下,看看到底是哪里的连接没有释放掉


连接oracle的连接池如何写?刚开始写jsp,不太熟悉,能否请大家说明白点?惭愧



既然是jsp,那么用容器提供的连接池就可以了。
例如tomcat提供的。


最佳解决方案数据库连接池,具体网上很多,有APACHE和高手自己写的。


将代码修改为
DBConnection db = null
try{
db = new DBConnection();
str_sql="select * from ....";
ResultSet rs = db.execQuery(str_sql);
...
rs.close();
...
str_sql="select ....";
rs=db.execQuery(str_sql);
...
rs.close();
....
str_sql="update....";
db.execUpdate(str_sql);
...
}finally{
if ( db != null){
try{db.close();
}catch ( SQLException e){
}
}

----------
原因是可能sql执行失败,连接没有释放的原因。


用jsp的话肯定要用到web容器了,你可以在web容器中配置你的连接池,每次从连接池取得连接用完后记得把connection close掉


那要看你用的什么服务器了,Weblogic的好配,tomcat需要写你的项目配置文件


↑返回目录
前一篇: 高分求iPlanet Application Server的下载地址!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
后一篇: 通用柱装图代码(JS版)