`

JSP的rollback与commit

 
阅读更多
<%@page import="java.sql.*"%>
<%
        Connection con = null;
        Statement st = null;
        ResultSet rs = null;
        String url = "jdbc:mysql://localhost:3306/";
        String db = "permission";
        String driver = "com.mysql.jdbc.Driver";
        String user = "root";
        String pass = "zouhuiying";
        try {
            Class.forName(driver);
            con = DriverManager.getConnection(url + db, user, pass);
            con.setAutoCommit(false);// Disables auto-commit.  
            String sql1 = "insert into users(name,userid) VAlUES('aa','1')";
            String sql2 = "insert into users(name,userid) VAlUES('bb','2')";
            String sql3 = "insert into users(name,userid) VAlUES('cc','3')";
            String sql4 = "insert into users(name,userid) VAlUES('dd','4')";
            PreparedStatement   pre = con.prepareStatement(sql1);
            pre.executeUpdate();
            pre = con.prepareStatement(sql2);
            pre.executeUpdate();
            pre = con.prepareStatement(sql3);
            pre.executeUpdate();
            pre = con.prepareStatement(sql4);
            pre.executeUpdate();
            con.commit();
        } catch (SQLException e) {
            System.out.println("Exception");
            e.printStackTrace();
            if(con!=null)
            try {
                System.out.println("will rollback");
                con.rollback();
            } catch (SQLException e1) {
                    e1.printStackTrace();
            }
        } finally {
            con.close();
        }


%>




关于commit:当con.setAutoCommit(false)时,每执行一条sql语句时,并不会立即提交,在所有sql语句执行完后commit一起提交。
关于rollback:
当有一条sql语句没有执行成功,则会抛出异常,不会执行commit语句。抛出异常到达rollback语句,则以前执行成功的sql语句也不会提交,所以所有的sql语句都没有执行。
分享到:
评论

相关推荐

    前端jsp+mysql

    - **事务(Transactions)**:确保数据的一致性和完整性,例如,使用BEGIN、COMMIT、ROLLBACK进行事务管理。 - **索引(Indexes)**:提高查询速度,如B-Tree、Hash索引。 - **视图(Views)**:虚拟表,方便复杂...

    关键技术JSP与JDBC应用详解.( 张峋,杨三成)

    5. **事务处理**:掌握`Connection`对象的`setAutoCommit()`和`commit()`、`rollback()`方法,理解事务的ACID特性(原子性、一致性、隔离性、持久性)。 6. **批处理与性能优化**:了解如何使用`addBatch()`和`...

    在JSP中访问数据库方法

    JDBC提供了`Connection`对象的`setAutoCommit(false)`和`commit()`/`rollback()`方法来控制事务的开始、提交和回滚。 10. **性能优化**:优化JDBC代码,比如使用批处理(Batch Processing)执行多条相似的INSERT、...

    jsp数据库连接大全

    JSP可以通过Connection对象的setAutoCommit(false)开启手动提交,并在所有操作成功后调用commit(),如果出现错误则调用rollback()。 八、JDBC优化技巧 1. 使用PreparedStatement而非Statement,因为前者能缓存SQL...

    JSP(含SQL数据库)

    例如,通过设置autocommit属性或手动调用commit和rollback方法。 5. **错误处理**:当发生异常时,JSP可以捕获并处理,确保程序的健壮性。 **Flash大作业** 提到"Flash大作业",可能是指在JSP页面中嵌入了自制作的...

    JSP数据库编程指南(PDF)

    JSP可以利用Servlet容器提供的JDBC事务支持,通过设置Connection的自动提交属性或显式调用`commit()`和`rollback()`方法来控制事务边界。 **JSP与DAO(数据访问对象)模式** DAO模式是一种设计模式,它为数据访问...

    jsp简单示例

    事务管理(begin、commit、rollback)确保数据一致性。 8. **实体类与DAO(Data Access Object)模式**:在宿舍管理系统中,可能有对应的实体类如`Student`、`Dormitory`,DAO层负责封装数据库操作,降低业务逻辑和...

    jsp+oracle动态网站开发案列代码大全

    - 在JSP中,可以使用Connection对象的`setAutoCommit(false)`来手动开启事务,然后在所有操作成功后调用`commit()`,或者在出现错误时调用`rollback()`。 5. **JSP与Oracle交互** - 使用JDBC执行SQL查询、插入、...

    JSP JDBC 学习笔记(基础)

    6. **事务管理**:JDBC支持事务的概念,通过`Connection.setAutoCommit(false)`开启手动提交,`Connection.commit()`或`Connection.rollback()`控制事务。 7. **连接池**:为了提高性能和资源利用率,通常使用连接...

    jsp 操作MYSQL数据库

    MySQL支持ACID(原子性、一致性、隔离性和持久性)特性,可以通过设置`SET autocommit=0`来开启手动事务,然后用`COMMIT`提交事务或`ROLLBACK`回滚事务。 在MyEclipse中,你可以通过以下步骤来运行这个项目: 1. ...

    jsp---mysql开发实例

    5. **事务管理**:在需要确保数据一致性的操作中,可能会使用到JDBC的事务控制,如begin、commit和rollback等方法。 6. **错误处理**:通过异常处理机制来捕获和处理可能出现的错误,保证程序的健壮性。 7. **JSP...

    jsp学生宿舍管理系统

    可能还使用了事务处理来确保数据的一致性和完整性,比如在进行多步骤操作时,如转移宿舍分配,可能需要用到BEGIN、COMMIT和ROLLBACK语句。 Tomcat作为运行环境,配置了应用的部署描述符(web.xml),定义了应用的...

    JSP 经典范例 数据库部分

    JSP可以结合Servlet或JavaBeans来管理事务,使用begin、commit、rollback等方法。 7. 安全性考虑:在JSP与数据库交互时,需要防止SQL注入攻击。可以使用PreparedStatement预编译SQL语句,或者对用户输入进行适当的...

    使用jsp实现登录页面,增删改查页面,oracle数据库。

    JDBC提供了`Connection`对象的`setAutoCommit(false)`方法来开启手动提交,然后在操作结束后调用`commit()`或`rollback()`。\n\n**7. JSP与Servlet协同工作**\n虽然JSP可以直接处理请求,但在实际项目中,通常将业务...

    jsp连结数据库大全.rar

    3. **SQL语法**:掌握基本和高级的SQL语句,包括SELECT、INSERT、UPDATE、DELETE以及事务控制语句(如COMMIT和ROLLBACK)。 4. **预编译语句与批处理**:学习如何使用PreparedStatement防止SQL注入,并利用批处理...

    JSP+SQL2005 毕业设计信息管理系统

    4. **事务处理**:确保数据操作的一致性和完整性,例如在多条SQL语句执行时,使用`BEGIN TRANSACTION`, `COMMIT`或`ROLLBACK`来管理事务。 **系统功能** 1. **查询功能**:用户可以通过输入条件,如学生姓名、毕业...

    第2讲JSP基本语法和访问数据库共44页.pdf.zip

    在JSP中,可以使用Connection对象的setAutoCommit(false)来关闭自动提交,然后手动调用commit()或rollback()来控制事务边界,确保数据一致性。 五、JSP与JavaBean的结合 JavaBean是一种符合JavaBeans规范的Java类,...

    JSP运用事务处理

    此外,JSP通常与Java后端框架(如Spring、Struts等)配合,这些框架提供了更高级的事务管理功能,如支持声明式事务、事务回滚规则、事务传播行为等。例如,Spring的PlatformTransactionManager接口和@Transactional...

    页面显示数据库内容(jsp)

    JDBC提供了一些API来处理事务,如begin(), commit()和rollback()方法。 10. **错误处理**:良好的错误处理是任何Web应用的关键部分。在JSP中,可以使用异常处理块(try-catch-finally)来捕获和处理可能出现的问题...

    JSP教程之与数据库通信

    在JSP中,可以使用`Connection`对象的`setAutoCommit(false)`来禁用自动提交,并手动调用`commit()`或`rollback()`来控制事务: ```java conn.setAutoCommit(false); try { // 执行数据库操作 conn.commit(); } ...

Global site tag (gtag.js) - Google Analytics