本人想将某HTML界面录入的信息通过一个JSP页面执行 数据库事务操作 向SQL Server2000中的两张表同时插入数据;但tomcat总报错:
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 46 in the jsp file: /RuKuDan3.jsp
conn cannot be resolved
43:   
44:    }
45:    catch(SQLException e){
46:           try{ conn.rollback();                                                                                     
48:   }
49:   catch(SQLException exp){}JSP代码如下,请各位高手帮忙,求求大家了<body>
<div align="center">
  <p>
    <%
    String RKDid = request.getParameter("RKDid");
String CKid = request.getParameter("CKid");
String PJid = request.getParameter("PJid");
String RKnum = request.getParameter("RKnum");
String GHDW = request.getParameter("GHDW");
String RKtime = request.getParameter("RKtime");
String register = request.getParameter("register"); String url = "jdbc:odbc:example";
try{
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   Connection conn = DriverManager.getConnection(url,"sa","");
   
   conn.setAutoCommit(false);                                                   
   String sql_a = "INSERT INTO RuKuDan VALUES('"+RKDid+"','"+CKid+"','"+PJid+"','"+RKnum+"','"+GHDW+"','"+RKtime+"','"+register+"')";
   String sql_b = "UPDATE KuCun SET KCnum = KCnum + '" + RKnum + "' WHERE CKid ='"+CKid+"' AND PJid ='"+PJid+"' ";
   
   Statement stmt = conn.createStatement();
    
    stmt.executeUpdate(sql_a);
    stmt.executeUpdate(sql_b);
  
    conn.commit();                                                      conn.close();
 
  }
  catch(SQLException e){
         try{ conn.rollback();                                                                                           
 }
 catch(SQLException exp){}
     
  }%>
   </p>
</div>
</body>
谢谢大家

解决方案 »

  1.   

    Connection conn = DriverManager.getConnection(url,"sa","");
    是在try里面写的,要在try之前定义现在java里面写好了再往jsp考吧,或者根本不在jsp里写这个
      

  2.   

    conn.close();写在finally中 你已经把链接关闭了怎么回滚
      

  3.   

    你的conn定义的地方不对
    换到 try外面定义
      

  4.   


    人家rollback写在 catch  中 ....
    try出错 就不可能 close()的说何来 连接关闭了 怎么回滚
      

  5.   


    <div align="center">
      <p>
      <%
      String RKDid = request.getParameter("RKDid");
    String CKid = request.getParameter("CKid");
    String PJid = request.getParameter("PJid");
    String RKnum = request.getParameter("RKnum");
    String GHDW = request.getParameter("GHDW");
    String RKtime = request.getParameter("RKtime");
    String register = request.getParameter("register");String url = "jdbc:odbc:example";
    Connection conn = null;
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    conn = DriverManager.getConnection(url,"sa","");
      
    conn.setAutoCommit(false);   
    String sql_a = "INSERT INTO RuKuDan VALUES('"+RKDid+"','"+CKid+"','"+PJid+"','"+RKnum+"','"+GHDW+"','"+RKtime+"','"+register+"')";
    String sql_b = "UPDATE KuCun SET KCnum = KCnum + '" + RKnum + "' WHERE CKid ='"+CKid+"' AND PJid ='"+PJid+"' ";
      
    Statement stmt = conn.createStatement();
      
    stmt.executeUpdate(sql_a);
    stmt.executeUpdate(sql_b);
      
    conn.commit(); conn.close();
      
    }
    catch(SQLException e){
    try{ conn.rollback();   
    }
    catch(SQLException exp){}
      
    }%>
      </p>
    </div>
    </body>
      

  6.   

    conn只是前一个try块里定义的局部变量,出错的地方没有定义。
      

  7.   

    对try catch finally的作用没有理解