tomcat5.0配置mysql数据库连接池关闭连接一事?

print 2004-03-31 05:16:16
本人配置了tomcat5.0与mysql的连接池,tomcat自带的连接池类。

<Context path="/dx" docBase="e:/jsp_php/dx" debug="0">

<Resource name="jdbc/MysqlDX" auth="Container"

type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/MysqlDX">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>org.gjt.mm.mysql.Driver</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:mysql://localhost/dx?useUnicode=true</value>

</parameter>

<parameter>

<name>username</name>

<value>***</value>

</parameter>

<parameter>

<name>password</name>

<value>***</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>20</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>10</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>-1</value>

</parameter>

</ResourceParams>
</Context>

以上配置可以正常访问,并在写一小系统,可刷新带查询数据库的页面超过十多次的话,页面会突然访问不了,页面进度一直在进行,可就是不会显示正常的页面。我访问不带查询数据库的页面正常。。。说明是访问数据库这出问题,,可我页面里都关闭了连接呀??这是为什么??

index.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.sql.*,java.text.*,java.util.*,net.power.www.sort.*" %>

ResultSet rs = sort.Query("select * from dx");
rs.last();
out.print(rs.getRow());
sort.Close();


上面这页面刷新二三十次都不会出现问题。。。


出现问题的页面当然有很多代码,可我实例化了数据库连接类,在页面最后关闭了连接呀


以下是我写的访问连接池类。。。。

ackage net.power.www.sort;

import java.sql.*;
import javax.naming.*;

public class Sort_DB {

Context initCtx = null;

Context ctx = null;

Object obj = null;

javax.sql.DataSource ds = null;

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

static String jndName = "jdbc/MysqlDX";

public Sort_DB( ) {

System.out.println("Sort类已启动");

}

public boolean Update( String sql ) {

try {

initCtx = new InitialContext();

ctx = (Context) initCtx.lookup("java:comp/env");

obj = (Object) ctx.lookup(jndName);

ds = (javax.sql.DataSource)obj;

conn = ds.getConnection( );

stmt = conn.createStatement( );

stmt.executeUpdate( sql );

stmt.close( );

System.out.println("Update stmt close");

conn.close( );

System.out.println("Update conn close");

return true;

} catch ( Exception e ) {

System.err.println ( e.getMessage( ) );

return false;

}

}


public ResultSet Query( String sql ) {

try {

initCtx = new InitialContext();

ctx = (Context) initCtx.lookup("java:comp/env");

obj = (Object) ctx.lookup(jndName);

ds = (javax.sql.DataSource)obj;

conn = ds.getConnection( );

stmt = conn.createStatement( );

rs = stmt.executeQuery( sql );

} catch ( Exception e ) {

System.err.println ( e.getMessage( ) );

}

return rs;

}

public void Close(){

try{

if( stmt!=null ){

stmt.close();

System.out.print("Query stmt close");

}

if( conn!=null ){

conn.close();

System.out.println("Query conn close");

}

}catch( SQLException e) {

System.out.println( e.getMessage() );

}

}

}
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leemaasn 2004-03-31
  • 打赏
  • 举报
回复
是啊。
lhbf(牧野) 说的是正轨!
lhbf 2004-03-31
  • 打赏
  • 举报
回复
你不要将rs直接用在页面上,而是用bean中返回的ArrayList之类的对象,再试一下。
print 2004-03-31
  • 打赏
  • 举报
回复
<table width="760" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor=dedede width="180" valign="top" scope="col">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="40" align=center scope="col">短讯内容后台管理</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="35" align=center scope="col"><a href=admin_bj.jsp >所有编辑</a></td>
</tr>
<tr>
<td height="35" align=center scope="col"><a href=admin_bj.jsp?action=add >编辑添加</a></td>
</tr>
</table></td>
<td align="center" bgcolor=efefef valign="top" scope="col">
<%
if ("add".equals(request.getParameter("action"))) {

%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor=dedede height=35 scope="col">当前位置:<a href=admin_index.jsp >短讯后台管理</a> >> 编辑添加</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form name="dx_add" method="post" action="?action=textadd">
<tr>
<td scope="col" valign="top" align=center height=300 width=70% ><br><br>
<table width="85%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="35" scope="col">编辑姓名</td>
<td height="12" scope="col"><input class="input" name="name" type="text" size="16"></td>
</tr>
<tr >
<td height="45" colspan="2" scope="col">        <input class="input" onclick='return jce()' type="submit" name="Submit" value="添加">    
<input type="reset" class="input" name="Submit2" value="重 置"></td>
</tr>
</table>
<br><br>
</td>
<td> </td>
</tr>
</form>
</table>
<%

}else if ("edit".equals(request.getParameter("action"))) {

if (!Isnum(request.getParameter("id"))){

out.print("<script>alert('系统错误:您来自个非法链接!');window.history.back();</script>");

return;

}

sql = "select * from dx_bjz where id=" + request.getParameter("id");

rs = sort.Query( sql );

rs.last();

%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor=dedede height=35 scope="col">当前位置:<a href=admin_index.jsp >短讯后台管理</a> >> 编辑修改</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form name="dx_add" method="post" action="?action=editadd">
<tr>
<td scope="col" valign="top" align=center height=300 width=70% ><br><br>
<table width="85%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="35" scope="col">编辑姓名</td>
<td height="12" scope="col"><input class="input" name="name" value='<%=ever.toChinese(rs.getString("bj_name")) %>' type="text" size="16"></td>
</tr>
<tr>
<td height="35" scope="col">添加时间</td>
<td height="12" scope="col"><input class="input" name="times" value='<%=rs.getString("addtime") %>' type="text" size="16"></td>
</tr>
<tr >
<td height="45" colspan="2" scope="col"><input name="id" value='<%=request.getParameter("id") %>' type="hidden" size="16">        <input class="input" onclick='return jce()' type="submit" name="Submit" value="修 改">    
<input type="reset" class="input" name="Submit2" value="重 置"></td>
</tr>
</table>
<br><br>
</td>
<td> </td>
</tr>
</form>
</table>
<%

rs.close();

}else if ("del".equals(request.getParameter("action"))) {

if( !Isnum(request.getParameter("id"))){

out.print("<script>alert('系统错误:您来自个非法链接!');window.history.back();</script>");

return;

} else {

sql = "delete from dx_bjz where id = "+request.getParameter("id");

if( sort.Update( sql ) ){

response.sendRedirect("error.jsp?meg="+java.net.URLEncoder.encode("数据删除成功!")+"&url=admin_bj.jsp");

return;

}else{

out.print("<script>alert('请确认数据库中有该记录!删除不成功!');window.history.back();</script>");

return;

}

}

} else {

%>
<script>
function qued(){
if(confirm("确定您的操作吗?")){
return true;
}
return false;
}
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor=dedede height=35 scope="col">当前位置:<a href=admin_index.jsp >编辑管理</a> >> 所有编辑</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr>
<td height=30 bgcolor="dedede" align=center width=40% scope="col">编 辑 姓 名</td>
<td bgcolor="dedede" width=40% align=center scope="col">添 加 时 间</td>
<td bgcolor="dedede" width=10% align=center scope="col">修 改</td>
<td bgcolor="dedede" width=10% align=center scope="col">删 除</td>
</tr>
<%

sql = "select * from dx_bjz order by addtime desc";

rs = sort.Query( sql );

while(rs.next()){

%>
<tr>
<td height=30 bgcolor="dedede" align=center scope="col"><%=ever.toChinese(rs.getString("bj_name")) %></td>
<td bgcolor="dedede" align=center scope="col"><%=rs.getString("addtime") %></td>
<td bgcolor="dedede" align=center scope="col"><a href='<%=request.getRequestURL() %>?action=edit&id=<%=rs.getInt(1) %>' >修 改</a></td>
<td bgcolor="dedede" align=center scope="col"><a onclick='return qued()' href='<%=request.getRequestURL() %>?action=del&id=<%=rs.getInt(1) %>' >删 除</a></td>
</tr>
<%

}

rs.close();

%>
</table>
<%

}

%>
</td>
</tr>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="dedede" height=30 scope="col"> </td>
</tr>
</table>
<%

sort.Close();

%>
<%@ include file="inc/copyright.jsp" %>
</center>
</body>
</html>
print 2004-03-31
  • 打赏
  • 举报
回复
admin_inde.jsp 以下内容只要我刷新十多次的话就会访问不了,必须重启tomcat才可以正常访问,反正只要查询了数据库十多次的话,就会出现问题。。。。

<%@ page contentType="text/html; charset=gb2312" %>

<%@ page language="java" import="java.sql.*,java.text.*,java.util.*,net.power.www.sort.*" %>

<%@ include file="inc/top.jsp" %>

<%!

public boolean Isnum(String num){

int ss;

try {

ss = Integer.parseInt(num);

return true;

} catch (NumberFormatException e) {

System.out.println("");

return false;

}

}

%>
<%

String sql = null;

ResultSet rs = null;

int rs_rown = 0;

Evermore ever = new Evermore( );

java.util.Date d=new java.util.Date();

d.setTime(System.currentTimeMillis());

String time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d);

Sort_DB sort = new Sort_DB();

%>

<%@ include file="admin_qx.jsp" %>

<%
if ("textadd".equals(request.getParameter("action"))) {

if( request.getParameter("name").trim().length()<1 ){

response.sendRedirect("error.jsp?meg="+java.net.URLEncoder.encode("您未填写编辑姓名!")+"&url=login.jsp");

return;

}

sql = "select * from dx_bjz where bj_name='"+request.getParameter("name").trim()+"'";

out.print(sql);

rs = sort.Query( sql );

rs.last();

rs_rown = rs.getRow();

rs.close();

out.print(rs_rown);

if( rs_rown > 0 ){

response.sendRedirect("error.jsp?meg="+java.net.URLEncoder.encode("该编辑名已存在!")+"&url=login.jsp");

return;

}else{

sql = "insert into dx_bjz values('','"+request.getParameter("name").trim()+"','"+time+"')";

out.print(sql);

if ( sort.Update( sql ) ){

response.sendRedirect("error.jsp?meg="+java.net.URLEncoder.encode("编辑名添加成功!")+"&url=login.jsp");

return;

} else {

response.sendRedirect("error.jsp?meg="+java.net.URLEncoder.encode("编辑名添加不成功!")+"&url=login.jsp");

return;

}

}

}else if("editadd".equals(request.getParameter("action"))){

if( !Isnum(request.getParameter("id")) ){

out.print("<script>alert('系统错误:您来自个非法链接!');window.history.back();</script>");

return;

}

if( request.getParameter("name").trim().length()<1 ){

out.print("<script>alert('系统错误:您修改的编辑名不能为空!');window.history.back();</script>");

return;

}

if( request.getParameter("times").trim().length()<1 ){

out.print("<script>alert('系统错误:您修改的添加时间不能为空!');window.history.back();</script>");

return;

}

sql = "select * from dx_bjz where bj_name='"+ request.getParameter("name") +"'";

rs = sort.Query(sql);

rs.last();

rs_rown = rs.getRow();

rs.close();

if( rs_rown > 0 ){

out.print("<script>alert('系统错误:您修改的编辑名已存在!');window.history.back();</script>");

return;

}else{

sql = "update dx_bjz set bj_name='" + request.getParameter("name") + "',addtime='" + request.getParameter("times") +"' where id = "+request.getParameter("id");

if( sort.Update(sql) ){

response.sendRedirect("error.jsp?meg="+java.net.URLEncoder.encode("编辑名修改成功!")+"&url=admin_bj.jsp");

return;

} else {

out.print("<script>alert('系统错误:您预修改的编辑名未能修改成功!');window.history.back();</script>");

return;

}

}

}

%>
<title>短讯内容管理※※※中国萍乡网※※※http://www.pxnews.cn</title>
</head>
<body>
<center>
<%@ include file="inc/han.jsp" %>
<script>

function jce() {

if(dx_add.name.value.length<1){

alert("您必须输入编辑姓名!");

dx_add.name.focus();

return false;

}

}
</script>

81,092

社区成员

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

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