为什么我的网站在运行一段时间后出现客户端的操作过多 为什么我的网站在运行一段时间后出现客户端的操作过多,之后就再也打不开了,重新启动服务器又可以了,我的数据库访问是写在类里的,查询的结果集通过类里的方法,返回给页面上的记录集对象,使用完成后我没有关闭他,原因是这些对象是页面级的,当页面关闭后就消失了。这样对吗?,请给个方案,急急。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 页面关闭后就消失了。这样对吗明确的答复你,不对!你的结构有问题,我想我可能帮不了你太多了,因为你的页面里只有ResultSetxxx.jsp<%@ page JSP的表头<% MyDbBean db = ... try{ 以下是你的JSP的代码 }finally{ db.closeConnection(); // 这里一定要关闭 } 数据库使用完毕后一定要关闭,在你的JavaBean里写好关闭的方法 数据库用完后进行调用关闭,把连接归还到连接池(如果你用的是数据连接池的方法)。如果你不关闭连接,即使你连接池的连接数再多,早晚也会满的。 package com.data;import java.sql.*;public class dataaccess{private String odbcQuery;private Connection odbcconn;private Statement odbcstmt;private String myquerystr;private ResultSet sqlRst;private String realpath;public dataaccess(){ odbcQuery=null; odbcconn=null; odbcstmt=null; myquerystr=null; sqlRst=null; realpath=null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ e.printStackTrace(); }}public dataaccess(String mysql){ this.myquerystr=mysql;}//设置SQL语句public void setSqlstr(String mysql){ this.myquerystr=mysql;}//设置数据库的物理路径public void setrealpath(String rpath){ this.realpath=rpath;}//初始化需要的数据public void initial(){ try{ String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+realpath; this.odbcconn = DriverManager.getConnection(url); this.odbcstmt = odbcconn.createStatement(); this.odbcQuery = myquerystr; }catch (SQLException e) { e.printStackTrace(); } }//执行添加删除修改public void exeUpdate(){ try{ odbcstmt.executeUpdate(odbcQuery); }catch(SQLException e){ e.printStackTrace(); }}//执行查询public ResultSet exeQuery(){ try{ this.sqlRst=odbcstmt.executeQuery(odbcQuery); return this.sqlRst; } catch(SQLException e) { return null; }}public void Closedb(){ try { if(sqlRst!=null) sqlRst.close(); if(odbcstmt!=null) odbcstmt.close(); if(odbcconn!=null) odbcconn.close(); } catch(Exception e) { system.out.println(e.tostring()); } } }还是不行呀,代码是这样的,大家看有什么问题。 用aceess的时候也遇到过这样的问题。后来改用mysql就OK了。 求助!jsp小问题 ajax中send()向服务器传输数据问题 java执行oracle存储过程前如何取得参数定义。 我刚学习JSP不知道怎么学? 推荐几个好的项目吧!有需求说明的最少给200分 访问mysql的问题在liunx下 真诚请教局域网内电脑通信问题 如何用JAVA程序读取网页的验证码 [源码]Java Web项目报价管理系统mysql版本 使用字符串作为freemaker模板 HTML <a> 这个标签里能不能通过JavaScript来改变它的value值? 有难度,根据有效期自动生成表格...谢谢!!!
xxx.jsp
<%@ page JSP的表头
<%
MyDbBean db = ...
try{
以下是你的JSP的代码
}finally{
db.closeConnection(); // 这里一定要关闭
}
import java.sql.*;
public class dataaccess
{
private String odbcQuery;
private Connection odbcconn;
private Statement odbcstmt;
private String myquerystr;
private ResultSet sqlRst;
private String realpath;public dataaccess(){
odbcQuery=null;
odbcconn=null;
odbcstmt=null;
myquerystr=null;
sqlRst=null;
realpath=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
}
public dataaccess(String mysql){
this.myquerystr=mysql;
}//设置SQL语句
public void setSqlstr(String mysql){
this.myquerystr=mysql;
}//设置数据库的物理路径
public void setrealpath(String rpath){
this.realpath=rpath;
}
//初始化需要的数据
public void initial(){
try{
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+realpath;
this.odbcconn = DriverManager.getConnection(url);
this.odbcstmt = odbcconn.createStatement();
this.odbcQuery = myquerystr;
}catch (SQLException e)
{
e.printStackTrace();
}
}
//执行添加删除修改
public void exeUpdate(){
try{
odbcstmt.executeUpdate(odbcQuery);
}catch(SQLException e){
e.printStackTrace();
}
}//执行查询
public ResultSet exeQuery(){
try{
this.sqlRst=odbcstmt.executeQuery(odbcQuery);
return this.sqlRst;
}
catch(SQLException e)
{
return null;
}
}public void Closedb(){
try
{
if(sqlRst!=null) sqlRst.close();
if(odbcstmt!=null) odbcstmt.close();
if(odbcconn!=null) odbcconn.close();
}
catch(Exception e)
{
system.out.println(e.tostring());
}
}
}还是不行呀,代码是这样的,大家看有什么问题。
后来改用mysql就OK了。