@Override public SQLConnection setAutoCommit(boolean autoCommit, Handler<AsyncResult<Void>> handler) { Future<Void> fut; synchronized (this) { if (inTransaction && autoCommit) { inTransaction = false; fut = ConversionUtils.completableFutureToVertxVoid(connection.sendQuery("COMMIT"), vertx); } else { fut = Future.succeededFuture(); } inAutoCommit = autoCommit; } fut.setHandler(handler); return this; }
private synchronized void beginTransactionIfNeeded(Handler<AsyncResult<Void>> action) { if (!inAutoCommit && !inTransaction) { inTransaction = true; ConversionUtils.completableFutureToVertxVoid(connection.sendQuery(getStartTransactionStatement()), vertx) .setHandler(action); } else { action.handle(Future.succeededFuture()); } }
@Override public SQLConnection setAutoCommit(boolean autoCommit, Handler<AsyncResult<Void>> handler) { Future<Void> fut; synchronized (this) { if (inTransaction && autoCommit) { inTransaction = false; fut = ConversionUtils.completableFutureToVertxVoid(connection.sendQuery("COMMIT"), vertx); } else { fut = Future.succeededFuture(); } inAutoCommit = autoCommit; } fut.setHandler(handler); return this; }
@Override public SQLConnection execute(String sql, Handler<AsyncResult<Void>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithVoidHandler(connection.sendQuery(sql), vertx, handler); }); return this; }
@Override public SQLConnection execute(String sql, Handler<AsyncResult<Void>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithVoidHandler(connection.sendQuery(sql), vertx, handler); }); return this; }
private synchronized void beginTransactionIfNeeded(Handler<AsyncResult<Void>> action) { if (!inAutoCommit && !inTransaction) { inTransaction = true; ConversionUtils.completableFutureToVertxVoid(connection.sendQuery(getStartTransactionStatement()), vertx) .setHandler(action); } else { action.handle(Future.succeededFuture()); } }
@Override public synchronized void close(Handler<AsyncResult<Void>> handler) { inAutoCommit = true; if (inTransaction) { inTransaction = false; Future<QueryResult> future = ConversionUtils.completableFutureToVertx(connection.sendQuery("COMMIT"), vertx); future.setHandler((v) -> { pool.giveBack(connection); handler.handle(Future.succeededFuture()); }); } else { pool.giveBack(connection); handler.handle(Future.succeededFuture()); } }
private SQLConnection endAndStartTransaction(String command, Handler<AsyncResult<Void>> handler) { if (inTransaction) { inTransaction = false; ConversionUtils.completableFutureToVertx(connection.sendQuery(command), vertx).setHandler( ar -> { if (ar.failed()) { handler.handle(Future.failedFuture(ar.cause())); } else { ConversionUtils.completableFutureToVertx(connection.sendQuery(getStartTransactionStatement()), vertx).setHandler( ar2 -> { if (ar2.failed()) { handler.handle(Future.failedFuture(ar.cause())); } else { inTransaction = true; handler.handle(Future.succeededFuture()); } } ); } }); } else { if (inAutoCommit) { handler.handle(Future.failedFuture( new IllegalStateException("Not in transaction currently"))); } else { handler.handle(Future.succeededFuture()); } } return this; }
private SQLConnection endAndStartTransaction(String command, Handler<AsyncResult<Void>> handler) { if (inTransaction) { inTransaction = false; ConversionUtils.completableFutureToVertx(connection.sendQuery(command), vertx).setHandler( ar -> { if (ar.failed()) { handler.handle(Future.failedFuture(ar.cause())); } else { ConversionUtils.completableFutureToVertx(connection.sendQuery(getStartTransactionStatement()), vertx).setHandler( ar2 -> { if (ar2.failed()) { handler.handle(Future.failedFuture(ar.cause())); } else { inTransaction = true; handler.handle(Future.succeededFuture()); } } ); } }); } else { if (inAutoCommit) { handler.handle(Future.failedFuture( new IllegalStateException("Not in transaction currently"))); } else { handler.handle(Future.succeededFuture()); } } return this; }
@Override public synchronized void close(Handler<AsyncResult<Void>> handler) { inAutoCommit = true; if (inTransaction) { inTransaction = false; Future<QueryResult> future = ConversionUtils.completableFutureToVertx(connection.sendQuery("COMMIT"), vertx); future.setHandler((v) -> { pool.giveBack(connection); handler.handle(Future.succeededFuture()); }); } else { pool.giveBack(connection); handler.handle(Future.succeededFuture()); } }
@Override public SQLConnection query(String sql, Handler<AsyncResult<ResultSet>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithHandler( connection.sendQuery(sql), vertx, handleAsyncQueryResultToResultSet(handler)); }); return this; }
@Override public SQLConnection update(String sql, Handler<AsyncResult<UpdateResult>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithHandler( connection.sendQuery(sql), vertx, handleAsyncUpdateResultToResultSet(handler)); }); return this; }
@Override public SQLConnection queryStream(String sql, Handler<AsyncResult<SQLRowStream>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithHandler( connection.sendQuery(sql), vertx, handleAsyncQueryResultToRowStream(handler)); }); return this; }
@Override public SQLConnection query(String sql, Handler<AsyncResult<ResultSet>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithHandler( connection.sendQuery(sql), vertx, handleAsyncQueryResultToResultSet(handler)); }); return this; }
@Override public SQLConnection queryStream(String sql, Handler<AsyncResult<SQLRowStream>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithHandler( connection.sendQuery(sql), vertx, handleAsyncQueryResultToRowStream(handler)); }); return this; }
@Override public SQLConnection update(String sql, Handler<AsyncResult<UpdateResult>> handler) { beginTransactionIfNeeded(v -> { ConversionUtils.connectCompletableFutureWithHandler( connection.sendQuery(sql), vertx, handleAsyncUpdateResultToResultSet(handler)); }); return this; }
connection.sendQuery("SELECT 1 AS alive") .whenCompleteAsync((ignored, error) -> { if (error != null) {
connection.sendQuery("SELECT 1 AS alive") .whenCompleteAsync((ignored, error) -> { if (error != null) {