请问各位高手!javaBean导致mysql数据库的sleep状态的连接越来越多怎么回

[复制链接]
查看11 | 回复1 | 2021-1-27 07:15:45 | 显示全部楼层 |阅读模式
写了个javaBean用在jsp业面中,数据库连接池用的是dbcp的,现在的问题是每次刷新网页后,用mysqladmin-uroot-pprocesslist查看连接数都会增加10个,前面的连接都是sleep状态,并且随着网页的打开连接数越来越多
dbcp.properties参数如下:
#连接设置
#mysql
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/qyjj
username=root
password=duwenjun
#
initialSize=10
#最大连接数量
maxActive=50
#
maxIdle=20
#
minIdle=5
#
maxWait=60000

#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user"与"password"两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=UTF8
#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true
#driverdefault指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=
#driverdefault指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED,READ_COMMITTED,REPEATABLE_READ,SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED
javaBean的代码如下:
publicclasscheckbean{
publicstaticDBCPUtildbcpUtil;
publicstaticConnectionconn;
publiccheckbean()
{
try
{
dbcpUtil=newDBCPUtil();
}
catch(Exceptione)
{
return;
}
}
publicstaticvoidmain(String[]args)throwsSQLException{
Stringstr=isMember("admin","888888");
System.out.println(str);
/*try
{
dbcpUtil=newDBCPUtil();
}
catch(Exceptione)
{
return;
}*/
}
publicstaticStringisMember(Stringusername,Stringpass)
{
Stringsql="select*fromadminwhereusername='"+username+"'andpassword='"+pass+"'";
try{//实例化数据库连接的代理类
//获得数据库连接对象
conn=dbcpUtil.getConn();
//下面代码是存储过程的调用
Statementstate=conn.createStatement();
ResultSetrs=state.executeQuery(sql);
if(rs.next()){
return"ok";
}
//关闭资源
dbcpUtil.close(rs,state,conn);
returnsql;
}
catch(Exceptione)
{
returnsql;
}
}
publicStatementgetStatement()
{
try{//实例化数据库连接的代理类
//获得数据库连接对象
conn=dbcpUtil.getConn();
//下面代码是存储过程的调用
Statementstate=conn.createStatement();
returnstate;
}
catch(Exceptione)
{
returnnull;
}
}
publicStringclose(ResultSetrs,Statementst)
{
try{
dbcpUtil.close(rs,st,conn);
return"closesuccess!";
}
catch(Exceptione)
{
return"closefail";
}
}
}
怎么回事呢??
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:15:45 | 显示全部楼层
看上去你每次都是新建立的db连接,然后用完后又关闭。
根本没有利用到连接池的复用功能。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行