<%@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语句都没有执行。
分享到:
相关推荐
- **事务(Transactions)**:确保数据的一致性和完整性,例如,使用BEGIN、COMMIT、ROLLBACK进行事务管理。 - **索引(Indexes)**:提高查询速度,如B-Tree、Hash索引。 - **视图(Views)**:虚拟表,方便复杂...
5. **事务处理**:掌握`Connection`对象的`setAutoCommit()`和`commit()`、`rollback()`方法,理解事务的ACID特性(原子性、一致性、隔离性、持久性)。 6. **批处理与性能优化**:了解如何使用`addBatch()`和`...
JDBC提供了`Connection`对象的`setAutoCommit(false)`和`commit()`/`rollback()`方法来控制事务的开始、提交和回滚。 10. **性能优化**:优化JDBC代码,比如使用批处理(Batch Processing)执行多条相似的INSERT、...
JSP可以通过Connection对象的setAutoCommit(false)开启手动提交,并在所有操作成功后调用commit(),如果出现错误则调用rollback()。 八、JDBC优化技巧 1. 使用PreparedStatement而非Statement,因为前者能缓存SQL...
例如,通过设置autocommit属性或手动调用commit和rollback方法。 5. **错误处理**:当发生异常时,JSP可以捕获并处理,确保程序的健壮性。 **Flash大作业** 提到"Flash大作业",可能是指在JSP页面中嵌入了自制作的...
JSP可以利用Servlet容器提供的JDBC事务支持,通过设置Connection的自动提交属性或显式调用`commit()`和`rollback()`方法来控制事务边界。 **JSP与DAO(数据访问对象)模式** DAO模式是一种设计模式,它为数据访问...
事务管理(begin、commit、rollback)确保数据一致性。 8. **实体类与DAO(Data Access Object)模式**:在宿舍管理系统中,可能有对应的实体类如`Student`、`Dormitory`,DAO层负责封装数据库操作,降低业务逻辑和...
- 在JSP中,可以使用Connection对象的`setAutoCommit(false)`来手动开启事务,然后在所有操作成功后调用`commit()`,或者在出现错误时调用`rollback()`。 5. **JSP与Oracle交互** - 使用JDBC执行SQL查询、插入、...
6. **事务管理**:JDBC支持事务的概念,通过`Connection.setAutoCommit(false)`开启手动提交,`Connection.commit()`或`Connection.rollback()`控制事务。 7. **连接池**:为了提高性能和资源利用率,通常使用连接...
MySQL支持ACID(原子性、一致性、隔离性和持久性)特性,可以通过设置`SET autocommit=0`来开启手动事务,然后用`COMMIT`提交事务或`ROLLBACK`回滚事务。 在MyEclipse中,你可以通过以下步骤来运行这个项目: 1. ...
5. **事务管理**:在需要确保数据一致性的操作中,可能会使用到JDBC的事务控制,如begin、commit和rollback等方法。 6. **错误处理**:通过异常处理机制来捕获和处理可能出现的错误,保证程序的健壮性。 7. **JSP...
可能还使用了事务处理来确保数据的一致性和完整性,比如在进行多步骤操作时,如转移宿舍分配,可能需要用到BEGIN、COMMIT和ROLLBACK语句。 Tomcat作为运行环境,配置了应用的部署描述符(web.xml),定义了应用的...
JSP可以结合Servlet或JavaBeans来管理事务,使用begin、commit、rollback等方法。 7. 安全性考虑:在JSP与数据库交互时,需要防止SQL注入攻击。可以使用PreparedStatement预编译SQL语句,或者对用户输入进行适当的...
JDBC提供了`Connection`对象的`setAutoCommit(false)`方法来开启手动提交,然后在操作结束后调用`commit()`或`rollback()`。\n\n**7. JSP与Servlet协同工作**\n虽然JSP可以直接处理请求,但在实际项目中,通常将业务...
3. **SQL语法**:掌握基本和高级的SQL语句,包括SELECT、INSERT、UPDATE、DELETE以及事务控制语句(如COMMIT和ROLLBACK)。 4. **预编译语句与批处理**:学习如何使用PreparedStatement防止SQL注入,并利用批处理...
4. **事务处理**:确保数据操作的一致性和完整性,例如在多条SQL语句执行时,使用`BEGIN TRANSACTION`, `COMMIT`或`ROLLBACK`来管理事务。 **系统功能** 1. **查询功能**:用户可以通过输入条件,如学生姓名、毕业...
在JSP中,可以使用Connection对象的setAutoCommit(false)来关闭自动提交,然后手动调用commit()或rollback()来控制事务边界,确保数据一致性。 五、JSP与JavaBean的结合 JavaBean是一种符合JavaBeans规范的Java类,...
此外,JSP通常与Java后端框架(如Spring、Struts等)配合,这些框架提供了更高级的事务管理功能,如支持声明式事务、事务回滚规则、事务传播行为等。例如,Spring的PlatformTransactionManager接口和@Transactional...
JDBC提供了一些API来处理事务,如begin(), commit()和rollback()方法。 10. **错误处理**:良好的错误处理是任何Web应用的关键部分。在JSP中,可以使用异常处理块(try-catch-finally)来捕获和处理可能出现的问题...
在JSP中,可以使用`Connection`对象的`setAutoCommit(false)`来禁用自动提交,并手动调用`commit()`或`rollback()`来控制事务: ```java conn.setAutoCommit(false); try { // 执行数据库操作 conn.commit(); } ...