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开源协议发布。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值