conn.setAutoCommit(false);
然后手动提交

解决方案 »

  1.   

    不能先存进session,后处理么?
      

  2.   

    如果是把preparestatement和con存进session,是不是有点……
      

  3.   


    有点什么了??我现在想到得办法就是把con存到session里在多个页面取啊,这样很有问题么??
      

  4.   

    还有一个问题啊:
    我在哪页定义事务开始(conn.setAutoCommit(false);
    )呢??
    如果各页之间并没有严格的步骤限制,可能用户跳过第一步先去做第二步了,那这样事务开始定义不就取不到了???
      

  5.   

    照你这么说,就可能引起con无法释放的问题
      

  6.   

    我觉得你应该把提交数据库的语句变成String型放入session中,到最后提交时再用conn.setAutoCommit(false)来实现事务.
    如:
    在Jsp1.jsp页面中.
    <%
    userName=request.getParameter("userName");
    passWord=request.getParameter("passWord");
    String sql1="insert into userTable value('"+userName+"','"+passWord+")";
    session.setAttribute("sql1",sql1);
    %>
    在最后提交页面Jsp2.jsp中
    <%
    Statement stmt=conn.createStatement();
    conn.setAutoCommit(false);
    String sql=(String)session.getAttribute("sql1");
    stmt.executeUpdate(sql);
    %>