JSP中数据库操作事务处理

JDBC支持事务操作,一般情况下,事务的操作需要以下步骤:

(1)把数据库连接对象的自动提交SQL的操作的属性关闭。(默认关闭事务-即打开自动提交。因为DDL和DCL的语句都会导致使我立即提交,而事务是由一步或几步数据操作序列组成的逻辑单元,这系列操作要么全部执行,或全部放弃执行。所以要将自动提交属性关闭)

(2) 执行一系列数据库操作,如果成功就提交事务。(调用Connection的commit方法提交)

(3)如果事务中操作没有完全成功,就回滚事务(当Connection遇到一个未处理的SQLException异常时,系统将会非正常的退出,事务也会自动的回滚。但如果程序捕获到了异常,则需要在异常处理块中显示的回滚事务)

代码举例:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   <title>JSP中数据库操作事务处理</title>
  </head>

  <body>
     <body>
     <%
       Connection conn=null;
       Statement stat=null;
       ResultSet rs=null;
       Class.forName("com.mysql.jdbc.Driver").newInstance();
       String url="jdbc:mysql://localhost:3306/spj?user=root&password=19960722w";
       conn = DriverManager.getConnection(url);
       conn.setAutoCommit(false);
      try
      {
         stat=conn.createStatement();
         String sql="insert into j (Jno,Jname,City) values('6','牧场','西安')";
         stat.execute(sql);
         
         String sql1="update j set Jno='7' where Jname='牧场'";
         stat.execute(sql1);
         
         conn.commit();
         conn.setAutoCommit(true);
         out.println("事务执行成功,执行回滚操作");
       }
       catch(Exception e)
       {
          conn.rollback();
          out.println("执行失败,执行回滚操作");
          System.out.print(e.getMessage());
       }
       if(stat!=null)
       {
          stat.close();
        }
        if(conn!=null)
        {
            conn.close();
         }
    %>
  </body>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值