怎么关闭不了数据库连接呢

voting52 2007-05-04 04:05:10
JSP文件:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();//装驱动
}
catch(ClassNotFoundException e)
{
out.println(e.getMessage());
// out.println("123");
}
try
{

Connection conn=DriverManager.getConnection("jdbc:odbc:Jinsql");//创建连接
Statement stmt =conn.createStatement();//创建执行实列
ResultSet rs=stmt.executeQuery("SELECT * FROM Customer");//结果集
out.print("<table border='1'>");
while(rs.next())
{
out.print("<tr><td>"+rs.getString("CustomerId")+"</td>");
out.print("<td>"+rs.getString("PassWord")+"</td></tr>");
}
out.print("</table>");
}
catch (SQLException sqlExc)
{
sqlExc.printStackTrace();
}
finally
{
stmt.close();
conn.close();
}

%>
</body>
</html>

出错提示:
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 39 in the jsp file: /search1.jsp
stmt cannot be resolved
36: }
37: finally
38: {
39: stmt.close();
40: conn.close();
41: }
42:


An error occurred at line: 40 in the jsp file: /search1.jsp
conn cannot be resolved
37: finally
38: {
39: stmt.close();
40: conn.close();
41: }
42:
43: /* finally


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


怎么关闭不了数据库连接呢??
...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
voting52 2007-05-04
  • 打赏
  • 举报
回复
没有异常提示
但数据显示不了
voting52 2007-05-04
  • 打赏
  • 举报
回复
各位帮我再看看这段分页显示吧..
怎么他显示不出来呢!

<body>
<%
out.println("1");
Statement stmt=null;
Connection conn=null;
ResultSet rs=null;
String strSQL="";
int totalrecord=0;
int PageSize=3;
int totalPage=0;
int Page=0;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();//装驱动
}
catch(ClassNotFoundException e)
{
out.println(e.getMessage());
}
out.println("1.5");
try
{
out.println("1.6");
conn=DriverManager.getConnection("jdbc:odbc:Jinsql");//创建连接
out.println("1.7");
stmt =conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);//创建执行实列
//算出总行数
out.println("1.71");
strSQL="select count(*) as recordcount form Customer";
out.println("1.72");
rs=stmt.executeQuery(strSQL);//结果集
out.println("1.73");
if(rs.next())
totalrecord=rs.getInt("recordcount");
out.println("2");
//输出记录
strSQL="select * form Customer";
rs=stmt.executeQuery(strSQL);
if(totalrecord%PageSize==0)
totalPage=totalrecord/PageSize;
else
totalPage=(int)Math.floor(totalrecord/PageSize)+1;
if(totalPage==0)
totalPage=1;
if(request.getParameter("Page")==null||request.getParameter("Page").equals(""))
Page=1;
else
try
{
Page=Integer.parseInt(request.getParameter("Page"));
}
catch(java.lang.NumberFormatException e)
{
Page=1;
}
if(Page<1) Page=1;
if(Page>totalPage)Page=totalPage;
rs.absolute((Page-1)*PageSize+1);
out.print("<table border='1'>");
for(int iPage=1;iPage<=PageSize;iPage++)
{
out.print("<tr><td>"+rs.getString("CustomerId")+"</td>");
out.print("<td>"+rs.getString("PassWord")+"</td></tr>");
if(!rs.next()) break;
}
out.print("</table>");
}
catch (SQLException sqlExc)
{
sqlExc.printStackTrace();
}
finally
{
stmt.close();
conn.close();
}
%>
</body>
phoenixYiYou 2007-05-04
  • 打赏
  • 举报
回复
关闭代码放在finally里应该没什么问题!
这样的程序需要两个try,catch吗?
建议你去掉一个试试?
voting52 2007-05-04
  • 打赏
  • 举报
回复
如何给分?
voting52 2007-05-04
  • 打赏
  • 举报
回复
andrew830314()
thank you
按你说的改了下可以了
andrew830314 2007-05-04
  • 打赏
  • 举报
回复
stmt和conn在try{}中,只能在这个{}内有效,在finally{}好象就没有作用了啊!你最好把stmt和conn放在外面定义!

81,092

社区成员

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

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