JDBI is a SQL convenience library for Java.
DEPRECATED: try the jdbi3 module.
NOTE: This module depends on jdbc module.
<dependency>
<groupId>org.jooby</groupId>
<artifactId>jooby-jdbi</artifactId>
<version>1.4.1</version>
</dependency>{
use(new Jdbi());
get("/", req -> {
DBI dbi = require(DBI.class);
// ... work with dbi
});
get("/handle", req -> {
try (Handle handle = require(Handle.class)) {
// ... work with dbi handle
}
});
}It is pretty straightforward (too):
public interface MyRepository extends Closeable {
@SqlUpdate("create table something (id int primary key, name varchar(100))")
void createSomethingTable();
@SqlUpdate("insert into something (id, name) values (:id, :name)")
void insert(@ind("id") int id, @Bind("name") String name);
@SqlQuery("select name from something where id = :id")
String findNameById(@Bind("id") int id);
}
...
{
use(new Jdbi());
get("/handle", req -> {
try (MyRepository h = require(MyRepository.class)) {
h.createSomethingTable();
h.insert(1, "Jooby");
String name = h.findNameById(1);
return name;
}
});
}If you need to configure and/or customize a DBI instance, just do:
{
use(new Jdbi().doWith((dbi, config) -> {
// set custom option
}));
}See JDBI for a detailed usage.