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:
connection.prepare("SELECT * FROM users WHERE first_name LIKE ?", { ar1 ->
if (ar1.succeeded()) {
var pq = ar1.result()
pq.execute(Tuple.of("julien"), { ar2 ->
if (ar2.succeeded()) {
// All rows
var rows = ar2.result()
}
})
}
})
|
Note
|
prepared query caching depends on the setCachePreparedStatements and
does not depend on whether you are creating prepared queries or use direct prepared queries
|
PreparedQuery can perform efficient batching:
connection.prepare("INSERT INTO USERS (id, name) VALUES (?, ?)", { ar1 ->
if (ar1.succeeded()) {
var prepared = ar1.result()
// Create a query : bind parameters
var batch = mutableListOf<Any?>()
// Add commands to the createBatch
batch.add(Tuple.of("julien", "Julien Viet"))
batch.add(Tuple.of("emad", "Emad Alblueshi"))
prepared.batch(batch, { res ->
if (res.succeeded()) {
// Process rows
var rows = res.result()
} else {
println("Batch failed ${res.cause()}")
}
})
}
})