JDBI官网翻译版

JDBI:便捷的JDBC抽象
这里写图片描述
JDBI是一个使用方便的SQL开发库,用符合Java语言习惯的集合、Bean等方式,提供关系数据库访问接口,同时保留了JDBC类似的信息。JDBI提供了链式风和SQL对象两种风格的API。

主要功能

链式API

链式风格看起来像下面这样:
// using in-memory H2 database
DataSource ds = JdbcConnectionPool.create(“jdbc:h2:mem:test”,
“username”,
“password”);
DBI dbi = new DBI(ds);
Handle h = dbi.open();
h.execute(“create table something (id int primary key, name varchar(100))”);

h.execute(“insert into something (id, name) values (?, ?)”, 1, “Brian”);

String name = h.createQuery(“select name from something where id = :id”)
.bind(“id”, 1)
.map(StringMapper.FIRST)
.first();

assertThat(name, equalTo(“Brian”));

h.close();

SQL对象风格API

第二种SQL对象风格API,简化了创建DAO对象的通常做法,可以将方面对应为一条语句。通过注解为SQL对象提供定义,例如:
public interface MyDAO
{
@SqlUpdate(“create table something (id int primary key, name varchar(100))”)
void createSomethingTable();

@SqlUpdate(“insert into something (id, name) values (:id, :name)”)
void insert(@Bind(“id”) int id, @Bind(“name”) String name);

@SqlQuery(“select name from something where id = :id”)
String findNameById(@Bind(“id”) int id);

/**
* close with no args is used to close the connection
*/
void close();
}
上面的接口定义了两个update操作,第一条语句创建了数据表,与链式API示例效果一样;第二条语句做了同样的insert操作;第三条语句定了一个查询。在第二条语句中可以看到,调用方法的时候传入了两个参数,通过名字进行绑定(bind)。

最后一个close()方法非常特别,执行close方法会关闭底层的JDNC连接。方法调用可能会抛出异常,像close()这样的方法要求在java.io.Closeable对象上调用,这样可以利用Java 7中资源自动关闭特性。

使用SQL对象定义,可以像下面这样编写代码:

// using in-memory H2 database via a pooled DataSource
JdbcConnectionPool ds = JdbcConnectionPool.create(“jdbc:h2:mem:test2”,
“username”,
“password”);
DBI dbi = new DBI(ds);

MyDAO dao = dbi.open(MyDAO.class);

dao.createSomethingTable();

dao.insert(2, “Aaron”);

String name = dao.findNameById(2);

assertThat(name, equalTo(“Aaron”));

dao.close();
ds.dispose();

下载

Maven

在通过Apache Maven管理的项目中使用JDBI,可以添加以下依赖:

org.jdbi
jdbi
jdbi.version123org.jdbijdbi {jdbi.version}
在Maven Central可以找到JDBI的最新版本。

下载Jar

JDBI发布的jar文件可以从Maven Central下载。

开发资源

官方文档
5分钟入门介绍
下载JDBI
DBI、Handles与SQL语句
链式查询
SQL对象API概述
SQL对象查询
操作SQL对象数据
SQL对象批处理
SQL对象参数绑定
SQL对象混合(mixin)
自定义SQL对象
FAQ
Maven站点
Javadoc
官方文档站点
Google讨论组
JavaDoc
FAQ
社区
使用协议

JDBI遵循Apache License 2.0开源协议发布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值