我不喜欢 ORM 框架,但是我也不想完全手写 JDBC ,因此一个好的 JDBC 工具包是最好的选择。
之前一直在用 dbutils ,但是最近开始用一些类似 JSON 字段的东东,dbutils 够简单,但不够灵活。于是选择替代品。
然后发现了 JDBI 。
比较了一下二者,果断弃用 dbutils。
JDBI 优势:
- 依然在活跃的开发
- 使用最新 Java 特性,提供了流式API和声明式API的风格、要求 Java 11 的支持。
- 扩展性比较强
- 官方文档 Jdbi 3 Developer Guide 也非常完善
一个简单的示例代码:
DataSource ds = ...
Jdbi jdbi = Jdbi.create(ds);
jdbi.useHandle(handle -> {
handle.execute("create table contacts (id int primary key, name varchar(100))");
handle.execute("insert into contacts (id, name) values (?, ?)", 1, "Alice");
handle.execute("insert into contacts (id, name) values (?, ?)", 2, "Bob");
});
List<String> names = jdbi.withHandle(handle ->
handle.createQuery("select name from contacts")
.mapTo(String.class)
.list());
assertThat(names).contains("Alice", "Bob");
挺好!