public class Jdbi3 extends Object implements org.jooby.Jooby.Module
Jdbi provides a convenience interface for SQL operations in Java.
This module depends on Jdbc module.
{
use(new Jdbc());
use(new Jdbi3());
get("/pets", () -> {
Jdbi jdbi = require(Jdbi.class);
return jdbi.withHandle(handle -> {
// work with handle
return ...;
})
});
}
{
use(new Jdbc());
use(new Jdbi3()
.transactionPerRequest()
);
get("/pets", () -> {
// This code run inside a transaction
Handle handle = require(Handle.class);
// work with handle
return ...;
});
}
The {#transactionPerRequest()} opens a Handle then start, commit/rollback a transaction and finally close a Handle.
The Handle is accessible via `require` call inside a route handler:
{
get("/pets", () -> {
// This code run inside a transaction
Handle handle = require(Handle.class);
// work with handle
return ...;
});
}
You can optionally name the Handle:
{
use(new Jdbi3()
.transactionPerRequest(new TransactionalRequest()
.handle("trxPerReq")
)
);
get("/pets", () -> {
// This code run inside a transaction
Handle handle = require("trxPerReq", Handle.class);
// work with handle
return ...;
});
}
You can attach `SqlObjects` to the transaction per request `Handle`:
{
use(new Jdbi3()
.transactionPerRequest(new TransactionalRequest()
.attach(PetRepository.class)
)
);
get("/pets", () -> {
// Now you can request a pet repository:
PetRepository petRepo = require(PetRepository.class);
// work with petRepo
return ...;
});
}
{
use(new Jdbc("main"));
use(new Jdbi3("main"));
use(new Jdbc("audit"));
use(new Jdbi3("audit"));
get("/", () -> {
Jdbi main = require("main", Jdbi.class);
Jdbi audit = require("audit", Jdbi.class);
...
});
}
Configuration is done via configuration callback:
{
use(new Jdbc());
use(new Jdbi3().doWith(jdbi -> {
jdbi.installPlugin(new SqlObjectPlugin());
}));
}
| Constructor and Description |
|---|
Jdbi3()
Creates a new Jdbi module and connects to default database key:
db. |
Jdbi3(String name)
Creates a new Jdbi module and connect to the given database.
|
| Modifier and Type | Method and Description |
|---|---|
void |
configure(org.jooby.Env env,
com.typesafe.config.Config conf,
com.google.inject.Binder binder) |
Jdbi3 |
doWith(BiConsumer<org.jdbi.v3.core.Jdbi,com.typesafe.config.Config> configurer)
Configurer a jdbi instance.
|
Jdbi3 |
doWith(Consumer<org.jdbi.v3.core.Jdbi> configurer)
Configurer a jdbi instance.
|
Jdbi3 |
transactionPerRequest()
Add a transaction-per-request filter to the route pipeline.
|
Jdbi3 |
transactionPerRequest(TransactionalRequest request)
Add a transaction-per-request filter to the route pipeline.
|
public Jdbi3(String name)
name - Database key.public Jdbi3()
db.public Jdbi3 doWith(BiConsumer<org.jdbi.v3.core.Jdbi,com.typesafe.config.Config> configurer)
configurer - Configurer callback.public Jdbi3 doWith(Consumer<org.jdbi.v3.core.Jdbi> configurer)
configurer - Configurer callback.public Jdbi3 transactionPerRequest()
public Jdbi3 transactionPerRequest(TransactionalRequest request)
request - Transactional request options.Copyright © 2019. All rights reserved.