/** * Sets a connection wide query timeout. * * It can be over written at any time and becomes active on the next query call. * * @param timeoutInSeconds the max amount of seconds the query can take to execute. */ @Fluent @Deprecated default SQLConnection setQueryTimeout(int timeoutInSeconds) { setOptions(new SQLOptions().setQueryTimeout(timeoutInSeconds)); return this; }
public static io.vertx.ext.sql.SQLConnection setOptions(io.vertx.ext.sql.SQLConnection j_receiver, java.util.Map<String, Object> options) { io.vertx.core.impl.ConversionHelper.fromObject(j_receiver.setOptions(options != null ? new io.vertx.ext.sql.SQLOptions(io.vertx.core.impl.ConversionHelper.toJsonObject(options)) : null)); return j_receiver; } public static io.vertx.ext.sql.SQLConnection query(io.vertx.ext.sql.SQLConnection j_receiver, java.lang.String sql, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.Map<String, Object>>> resultHandler) {
private Single<SQLConnection> connect() { return jdbc.rxGetConnection() .map(c -> c.setOptions(new SQLOptions().setAutoGeneratedKeys(true))); }
@Test public void testInsertWithParameters() { final TimeZone tz = TimeZone.getDefault(); TimeZone.setDefault(TimeZone.getTimeZone("UTC")); SQLConnection conn = connection(); String sql = "INSERT INTO insert_table VALUES (?, ?, ?, ?);"; JsonArray params = new JsonArray().addNull().add("doe").add("jane").add("2002-02-02"); conn .setOptions(new SQLOptions().setAutoGeneratedKeys(true)) .updateWithParams(sql, params, onSuccess(result -> { assertUpdate(result, 1); int id = result.getKeys().getInteger(0); conn.queryWithParams("SElECT DOB FROM insert_table WHERE id=?;", new JsonArray().add(id), onSuccess(resultSet -> { assertNotNull(resultSet); assertEquals(1, resultSet.getResults().size()); assertEquals("2002-02-02", resultSet.getResults().get(0).getString(0)); TimeZone.setDefault(tz); testComplete(); })); })); await(); }
@Test public void testInsertWithNullParameters() { SQLConnection conn = connection(); String sql = "INSERT INTO insert_table (lname, fname, dob) VALUES (?, ?, ?)"; JsonArray params = new JsonArray().addNull().addNull().add("2002-02-02"); conn .setOptions(new SQLOptions().setAutoGeneratedKeys(true)) .updateWithParams(sql, params, onSuccess(result -> { assertUpdate(result, 1); int id = result.getKeys().getInteger(0); conn.queryWithParams("SElECT DOB FROM insert_table WHERE id=?", new JsonArray().add(id), onSuccess(resultSet -> { assertNotNull(resultSet); assertEquals(1, resultSet.getResults().size()); System.out.println(resultSet.getResults().get(0).getValue(0)); testComplete(); })); })); await(); }
.setOptions(new SQLOptions().setAutoGeneratedKeys(true)) .updateWithParams(sql, params, onSuccess((UpdateResult result) -> { assertUpdate(result, 1);
@Test public void testSelectTx() { String sql = "INSERT INTO insert_table VALUES (?, ?, ?, ?);"; JsonArray params = new JsonArray().addNull().add("smith").add("john").add("2003-03-03"); client.getConnection(onSuccess(conn -> { assertNotNull(conn); conn.setAutoCommit(false, onSuccess(v -> { conn .setOptions(new SQLOptions().setAutoGeneratedKeys(true)) .updateWithParams(sql, params, onSuccess((UpdateResult updateResult) -> { assertUpdate(updateResult, 1); int id = updateResult.getKeys().getInteger(0); // Explicit typing of resultset is not really necessary but without it IntelliJ reports // syntax error :( conn.queryWithParams("SELECT LNAME FROM insert_table WHERE id = ?", new JsonArray().add(id), onSuccess((ResultSet resultSet) -> { assertFalse(resultSet.getResults().isEmpty()); assertEquals("smith", resultSet.getResults().get(0).getString(0)); testComplete(); })); })); })); })); await(); }