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

木头人来也 2018-03-09 10:19:38
   写了个java Bean用在jsp业面中,数据库连接池用的是dbcp的,现在的问题是每次刷新网页后,用mysqladmin -u root -p processlist查看连接数都会增加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

#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=60000


#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=UTF8

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED


javaBean的代码如下:
public class checkbean{
public static DBCPUtil dbcpUtil;
public static Connection conn;
public checkbean()
{
try
{
dbcpUtil=new DBCPUtil();
}
catch(Exception e)
{
return;
}
}
public static void main(String[] args) throws SQLException {
String str=isMember("admin","888888");
System.out.println(str);
/*try
{
dbcpUtil=new DBCPUtil();
}
catch(Exception e)
{
return;
}*/

}
public static String isMember(String username,String pass)
{
String sql="select * from admin where username='"+username+"' and password='"+pass+"'";
try{ //实例化数据库连接的代理类

//获得数据库连接对象
conn=dbcpUtil.getConn();
//下面代码是存储过程的调用
Statement state=conn.createStatement();

ResultSet rs=state.executeQuery(sql);

if(rs.next()){

return "ok";
}
//关闭资源
dbcpUtil.close(rs,state,conn);
return sql;
}
catch(Exception e)
{
return sql;
}

}
public Statement getStatement()
{
try{ //实例化数据库连接的代理类

//获得数据库连接对象
conn=dbcpUtil.getConn();
//下面代码是存储过程的调用
Statement state=conn.createStatement();
return state;
}
catch(Exception e)
{
return null;
}
}
public String close(ResultSet rs,Statement st)
{
try{
dbcpUtil.close(rs,st,conn);
return "close success!";
}
catch(Exception e)
{
return "close fail";
}
}

}

怎么回事呢??
...全文
415 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2018-03-12
  • 打赏
  • 举报
回复
看上去你每次都是新建立的 db 连接,然后用完后又关闭。 根本没有利用到连接池的复用功能。

81,092

社区成员

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

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