//------------------- // TransactionManager //------------------- public class TransactionManager { private static Connection _connection; public static Result initialize() { Result result = new Result(); try { final String driver = "org.sqlite.JDBC"; Class.forName(driver); result.setStatus(true); } catch(ClassNotFoundException e) { result.setMessage("Could not load database driver"); return result; } return result; } // // // private TransactionManager() { return; } public static Connection getConnection() { return _connection; } public static Result begin() { Result result = new Result(); String dbName = "db" + File.separator + "bookclub.sqlite"; String connectionURL = "jdbc:sqlite:" + dbName; try { assert (_connection == null); _connection = DriverManager.getConnection(connectionURL); _connection.setAutoCommit(false); result.setStatus(true); } catch (SQLException e) { result.setMessage(e.getMessage()); } return result; } public static Result end(boolean commit) { assert (_connection != null); Result result = new Result(); try { if (commit) { _connection.commit(); } else { _connection.rollback(); } result.setStatus(true); } catch (SQLException e) { result.setMessage(e.getMessage()); } finally { DbUtils.safeClose(_connection); } _connection = null; return result; } }