Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java从jsp页面提交/回滚_Java_Mysql_Jsp_Commit_Rollback - Fatal编程技术网

使用java从jsp页面提交/回滚

使用java从jsp页面提交/回滚,java,mysql,jsp,commit,rollback,Java,Mysql,Jsp,Commit,Rollback,我调用各种java类文件从jsp页面向表插入数据。有时数据并不是插入所有表中。因此,如何使用提交/从jsp页面回滚来避免这个问题,就需要创建完整性。jsp不应该连接到数据库并执行这样的逻辑。它们用于渲染视图-仅此而已 在JSP和数据库之间放置一个servlet。让servlet验证输入参数并将其绑定到对象,将请求路由到其他对象以满足请求,将对象添加到响应范围,并确定下一个视图。它被称为Model-2 MVC 您可能正在将scriptlet代码放入JSP中。这是一种1998年的风格,在很大程度上受

我调用各种java类文件从jsp页面向表插入数据。有时数据并不是插入所有表中。因此,如何使用提交/从jsp页面回滚来避免这个问题,就需要创建完整性。jsp不应该连接到数据库并执行这样的逻辑。它们用于渲染视图-仅此而已

在JSP和数据库之间放置一个servlet。让servlet验证输入参数并将其绑定到对象,将请求路由到其他对象以满足请求,将对象添加到响应范围,并确定下一个视图。它被称为Model-2 MVC

您可能正在将scriptlet代码放入JSP中。这是一种1998年的风格,在很大程度上受到了质疑


更好的解决方案是学习JSTL并将所有scriptlet代码保留在JSP之外。它还将迫使您将逻辑移出页面并移到它所属的服务器端。

使用try-catch和if-else语句检查数据插入是否正确 如果插入事务期间出错,则使用回滚

Connection conn = null;
Statement stmt = null;

try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost;databaseName=dbname;user=username;password=password";
conn = DriverManager.getConnection(connectionUrl); 
conn.setAutoCommit(false);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.executeUpdate(sql);
stmt.executeUpdate(sql);
stmt.executeUpdate(sql);

conn.commit();
}
catch(Exception e) {
if(!conn.isClosed()){
conn.rollback();
}
System.out.println(e);
}
finally{
if(!stmt.isClosed()){
stmt.close();
}
if(!conn.isClosed()){
conn.close();
}
}
或者尝试使用JSTL使其更简单
观看

发布一些代码,我们将帮助您。通常,它由您的服务方法中的业务事务处理