Способен ли метод Call to uplback (), только если метод Call to Commit () не удастся?JAVA

Программисты JAVA общаются здесь
Anonymous
Способен ли метод Call to uplback (), только если метод Call to Commit () не удастся?

Сообщение Anonymous »

Я новичок в Java JDBC и разработал небольшое приложение базы данных. Я учусь у O'Reilly - Программирование базы данных с JDBC и Java 2 -й издание.con.commit не преуспевает?

Я ожидал, что вызов cons.rollback () оказывает свое влияние, даже если con.commit () преуспевает. Другими словами, используя его в качестве действия "undo" . Так что все в порядке /ожидается? Это ближе к концу до con.close () . Я старался не покинуть его и запустить. Тем не менее, con.rollback () не откатается назад после con.commit () успешно.

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class UpdateLogic
{

public static void main(String args[])
{
Connection con = null;

try
{
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
String url = "jdbc:mysql://localhost:3306/Company";
Statement s;
con = DriverManager.getConnection(url, "root", "");
con.setAutoCommit(false); // make sure auto commit is off!
s = con.createStatement();// create the first statement
s.executeUpdate("INSERT INTO employee VALUES ('1', 'employee 1', '22','00-1234' )");

s.close(); // close the first statement
s = con.createStatement(); // create the second statement
s.executeUpdate("INSERT INTO employee VALUES ('2', 'employee 2', '21','00_4321' )");

con.commit(); // commit the two statements
System.out.println("Insert succeeded.");
s.close(); // close the second statement
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex)
{
Logger.getLogger(UpdateLogic.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException e)
{
if (con != null)
{
try
{
con.rollback();
} // rollback on error
catch (SQLException i)
{
}
}
e.printStackTrace();
} finally
{
if (con != null)
{
try
{
//con.rollback();
con.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/150 ... ethod-does

Вернуться в «JAVA»