使用java从jsp页面提交/回滚
我调用各种java类文件从jsp页面向表插入数据。有时数据并不是插入所有表中。因此,如何使用提交/从jsp页面回滚来避免这个问题,就需要创建完整性。jsp不应该连接到数据库并执行这样的逻辑。它们用于渲染视图-仅此而已 在JSP和数据库之间放置一个servlet。让servlet验证输入参数并将其绑定到对象,将请求路由到其他对象以满足请求,将对象添加到响应范围,并确定下一个视图。它被称为Model-2 MVC 您可能正在将scriptlet代码放入JSP中。这是一种1998年的风格,在很大程度上受到了质疑使用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年的风格,在很大程度上受
更好的解决方案是学习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使其更简单
观看发布一些代码,我们将帮助您。通常,它由您的服务方法中的业务事务处理