Tomcat数据连接池的问题 ,操作一段时间后频繁报错(denies access to data source )!

Jeroki 2004-03-17 11:08:13
大家帮我看看这些连接池,该怎样改进才能避免出错啊!


平台环境:Tomcat(4。1)+MySQL(4.0.12)+winxp Home Edition
出错提示:
Tomcat服务器提示
Server configuration denies access to data source

一下是连接池的代码:
////////////////////////////////////////////////////////////////////////
package com.es.bbs;

import com.es.util.PropertyManager;
import java.io.PrintStream;
import java.sql.*;

public class BbsReg
{

public BbsReg()
{
sDBDriver = PropertyManager.getProperty("DbConnectionDefaultPool.dbDriver");
sConnStr = PropertyManager.getProperty("DbConnectionDefaultPool.dbUrl");
user = PropertyManager.getProperty("DbConnectionDefaultPool.dbUser");
password = PropertyManager.getProperty("DbConnectionDefaultPool.dbPassword");
conn = null;
rs = null;
try
{
Class.forName(sDBDriver);
}
catch(ClassNotFoundException e)
{
System.err.println("BbsReg(): " + e.getMessage());
}
}

public ResultSet executeQuery(String sql)
{
rs = null;
try
{
conn = DriverManager.getConnection(sConnStr, user, password);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery: " + ex.getMessage());
System.err.println("aq.executeQuerystrSQL: " + sql);
}
return rs;
}

public void executeUpdate(String sql)
{
try
{
conn = DriverManager.getConnection(sConnStr, user, password);
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.err.println("aq.executeUpdate: " + ex.getMessage());
System.err.println("aq.executeUpadatestrSQL: " + sql);
}
}

String sDBDriver;
String sConnStr;
String user;
String password;
Connection conn;
ResultSet rs;
}
//////////////////////////////////////////////
/////////调用连接池///////////////////
package com.es.bbs;

import java.io.PrintStream;
import java.sql.ResultSet;
import java.sql.SQLException;


public class BbsAdmin
{

public BbsAdmin()
{
dbconn = new BbsReg();
rs = null;
id = 0;
adminname = "";
adminpwd = "";
}

public boolean checkAdminPassword(String s, String s1)
{
rs = null;
strSQL = "select * from slt_bbs_admin where adminname='" + s + "' and adminpwd='" + s1 + "'";
try
{
rs = dbconn.executeQuery(strSQL);
if(rs != null && rs.next())
{
yesorno = true;
adminname = rs.getString("adminname");
adminpwd = rs.getString("adminpwd");
} else
{
yesorno = false;
}
if(rs != null)
rs.close();
}
catch(SQLException sqlexception)
{
System.err.println("aq.executeQuery: " + sqlexception.getMessage());
System.err.println("checkuserpassword.STRSQL:: " + strSQL);
}
return yesorno;
}

public String getAdminName()
{
return adminname;
}

public String getAdminPassword()
{
return adminpwd;
}

BbsReg dbconn;
ResultSet rs;
String strSQL;
boolean yesorno;
int id;
String adminname;
String adminpwd;
}
...全文
64 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhbf 2004-03-17
  • 打赏
  • 举报
回复
推荐使用成熟的连接池如:poolman2.0.4
另:楼上的Leemaasn(呆鸟一号)回答问题怎么经常显示的字不全。
Leemaasn 2004-03-17
  • 打赏
  • 举报
回复
應該是你的Mysql數據庫裏沒有為root@localhost開通權限
你到MySQL數據庫裏的表user裏,按照格式添加一條記錄就可以了。
icool8 2004-03-17
  • 打赏
  • 举报
回复
你的不是连接池吧!

在你所谓的连接池类里加个方法,close
当数据库连接不用时,将数据库连接关掉!
Jeroki 2004-03-17
  • 打赏
  • 举报
回复
DbPool.Properties


DbConnectionDefaultPool.charset=iso8859-1
DbConnectionDefaultPool.dbType=mysql
DbConnectionDefaultPool.dbDriver=com.mysql.jdbc.Driver
DbConnectionDefaultPool.dbUrl=jdbc:mysql://localhost/eworks20
DbConnectionDefaultPool.dbUser=root
DbConnectionDefaultPool.dbPassword=
DbConnectionDefaultPool.minConnections=3
DbConnectionDefaultPool.maxConnections=5
woliuliudada 2004-03-17
  • 打赏
  • 举报
回复
没关连接池.连接池满了就连不上了.
要养成好习惯,用完就关

81,122

社区成员

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

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