-2

jsp ページからテーブルにデータを挿入するためのさまざまな Java クラス ファイルを呼び出します。すべてのテーブルにデータが挿入されないことがあります。したがって、jspページからコミット/ロールバックを使用してこの問題を回避する方法は整合性を作成します

4

2 に答える 2

3

JSP は、データベースに接続してそのようなロジックを実行するべきではありません。それらはビューをレンダリングするためのものです-それだけです。

JSP とデータベースの間にサーブレットを配置します。サーブレットが入力パラメーターを検証してオブジェクトにバインドし、要求を他のオブジェクトにルーティングして要求を満たし、オブジェクトを応答スコープに追加し、次のビューを決定します。モデル 2 MVC と呼ばれます。

おそらく、スクリプトレット コードを JSP に入れています。これは 1998 年のスタイルで、ほとんど信用されていません。

より良い解決策は、JSTL を学び、すべてのスクリプトレット コードを JSP から除外することです。また、ロジックをページから、それが属するサーバー側に移動する必要があります。

于 2012-05-16T11:50:44.603 に答える
0

データが正しく挿入されているかどうかを確認するには、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 を使用して簡単にするJSF フレームワークのチュートリアルを見る

于 2013-06-07T13:02:09.887 に答える