看看rst,conn变量的作用域,要定义在try块外面

解决方案 »

  1.   

    package DBean;
    import java.util.*;
    import java.sql.*;public class sample{    private java.sql.Connection conn = null;
        private java.sql.Statement  stmt = null;
        private java.sql.ResultSet  rset = null;
         
       /*  这里是开启连接的方法  */
        public void connectToDB(){
              
               try{               Class.ForName("....");
                   conn = DriverManager("..","..","..");
       
               }catch(java.lang.NotClassFoundException ex){
                   System.err.print("ConnectoToDB() err:" + ex.toString());
               }       
            }
       
        /*  关闭连接的方法*/
        public void disconnectToDB() thorws 
          java.sql.SQLException{
                  
               if(rset!=null)
                 {
                     rset.close();
                     rset = null;  
                  }   
               
               if(stmt!=null){
                     stmt.close();
                     stmt = null;  
                  }           if(conn!=null)
                 {
                     conn.close();
                     conn = null;  
                  } 
            }
    }
      

  2.   

    javabean代码如下:package online;
    import java.sql.*;
    public class onlineconn1
    {
      String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
      String sConnStr = "jdbc:odbc:online";
      Connection conn = null;
      ResultSet rs = null;
      public onlineconn1() 
      {
        try {
               Class.forName(sDBDriver);
             }
        catch(java.lang.ClassNotFoundException e)
             {
               System.err.println("onlineconn(): " + e.getMessage());
             }
      }
      public ResultSet executeQuery(String sql)
      {
         rs = null;
         try {
                conn = DriverManager.getConnection(sConnStr);
                Statement stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);
              }
         catch(SQLException ex)
             {
                System.err.println("aq.executeQuery: " + ex.getMessage());
              }
         return rs;
      }
      public void executeUpdate(String sql)
      {
         try {
                conn = DriverManager.getConnection(sConnStr);
                Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                stmt.executeUpdate(sql);
              }
         catch(SQLException ex)
             {
                System.err.println("aq.executeUpdate: " + ex.getMessage());
              }
      }
    }页面代码如下:
    <%@  page  contentType="text/html;charset=ISO8859_1"%>
    <%@ page language="java"%>
    <%@ page import="java.*"%>
    <jsp:useBean id="workM" scope="page" class="online.onlineconn1" />
    <jsp:useBean id="workc" scope="page" class="online.ISOtoGb2312" />
    <%
    String errorMessage="",
               sex=request.getParameter("sex"),
       num=request.getParameter("num").trim(),
       emailh=request.getParameter("emailh").trim(),
       emaile=request.getParameter("emaile").trim(),
       sub1=request.getParameter("sub1");
    java.util.Date now1 = new java.util.Date(); 
    java.sql.Date now = new java.sql.Date(now1.getTime()); 
    if (null == sex || "".equals(sex.trim())) errorMessage +="[请选择学生性别!]<br>";
    if (num.length()==0) errorMessage +="[请输入学生学号!]<br>";
    if (emailh.length()==0) errorMessage +="[请输入邮箱名称!]<br>";
    if (emaile.length()==0) errorMessage +="[请输入邮箱域名!]<br>";
    if ("0".equals(sub1.trim())) errorMessage +="[请选择学习科目!]<br>";
    if (errorMessage !="") {
    %>
    <jsp:forward page="stuerror.jsp">
      <jsp:param name="errorMesage" value='<%=workc.convert(errorMessage)%>' />
    </jsp:forward>
    <%
    }
    String strSQL;
    strSQL="INSERT INTO student(name,sex,brithyear,brithmonth,brithday,grade,xy,zy,lx,num,mkey,emailh,emaile,sub1,sub2,date,ip) Values('"+workc.convert(request.getParameter("name"))+"','"+workc.convert(request.getParameter("sex"))+"','"+workc.convert(request.getParameter("brithyear"))+"','"+workc.convert(request.getParameter("brithmonth"))+"','"+workc.convert(request.getParameter("brithday"))+"','"+workc.convert(request.getParameter("grade"))+"','"+workc.convert(request.getParameter("xy"))+"','"+workc.convert(request.getParameter("zy"))+"','"+workc.convert(request.getParameter("lx"))+"','"+workc.convert(request.getParameter("num"))+"','"+workc.convert(request.getParameter("mkey"))+"','"+workc.convert(request.getParameter("emailh"))+"','"+workc.convert(request.getParameter("emaile"))+"','"+workc.convert(request.getParameter("sub1"))+"','"+workc.convert(request.getParameter("sub2"))+"','"+now+"','"+workc.convert(request.getRemoteAddr())+"')";
    workM.executeUpdate(strSQL);
    %><title>=== 学生注册成功 ==</title>
    <link rel="stylesheet" href="pub.css" type="text/css">
    <body topmargin="70" bgcolor="#E8FFE8">
    <center>
      <table width="400" border="1" cellspacing="1" cellpadding="1" bordercolor="#006633">
        <tr> 
          <td align="center" valign="middle" bgcolor="#009900" class="titlewhite" height="27">=== 
            恭喜!学生注册成功!===</td>
        </tr>
        <tr> 
          <td align="center" valign="middle" bgcolor="#FFFFFF" height="170" class="word">您已经注册成功,请牢记你的用户名和密码!</td>
        </tr>
        <tr> 
          <td align="right" valign="middle" bgcolor="#009900" height="20"><a href="index.htm" class="titlewhite">&lt;返回首页&gt;</a> 
            <a href="javascript:window.close()" class="titlewhite">&lt;关闭&gt;</a>&nbsp;&nbsp;</td>
        </tr>
      </table>
    </center>
    </body>
      

  3.   

    <jsp:useBean id="myBean" scope="page" class="DBean.sample"/>
    <%
        try{
          myBean.connectToDB();
        }catch(java.sql.SQLException ex){
         out.print(ex.getMessage());      
        }finally{
         myBean.disconnectToDB();
        }%>能明白了吗? 
             
    %>