Using connections

When you need to execute sequential queries (without a transaction), you can create a new connection or borrow one from the pool:

Code not translatable

Prepared queries can be created:

require 'vertx-sql-client/tuple'
connection.prepare("SELECT * FROM users WHERE first_name LIKE ?") { |ar1_err,ar1|
  if (ar1_err == nil)
    pq = ar1
    pq.execute(VertxSqlClient::Tuple.of("julien")) { |ar2_err,ar2|
      if (ar2_err == nil)
        # All rows
        rows = ar2
      end
    }
  end
}
Note
prepared query caching depends on the cachePreparedStatements and does not depend on whether you are creating prepared queries or use direct prepared queries

PreparedQuery can perform efficient batching:

require 'vertx-sql-client/tuple'
connection.prepare("INSERT INTO USERS (id, name) VALUES (?, ?)") { |ar1_err,ar1|
  if (ar1_err == nil)
    prepared = ar1

    # Create a query : bind parameters
    batch = Array.new

    # Add commands to the createBatch
    batch.push(VertxSqlClient::Tuple.of("julien", "Julien Viet"))
    batch.push(VertxSqlClient::Tuple.of("emad", "Emad Alblueshi"))

    prepared.batch(batch) { |res_err,res|
      if (res_err == nil)

        # Process rows
        rows = res
      else
        puts "Batch failed #{res_err}"
      end
    }
  end
}