深入理解 h2 和 r2dbc-h2
简介
本文将会介绍R2DBC的H2实现r2dbc-h2的使用方法和要注意的事项。一起来看看吧。
H2数据库简介
什么是H2数据库呢?
H2是一个Java SQL database,它是一个开源的数据库,运行起来非常快。
H2流行的原因是它既可以当做一个独立的服务器,也可以以一个嵌套的服务运行,并且支持纯内存形式运行。
H2的jar包非常小,只有2M大小,所以非常适合做嵌套式数据库。
如果作为嵌入式数据库,则需要将h2*.jar添加到classpath中。
下面是一个简单的建立H2连接的代码:
如果给定地址的数据库并不存在,
同时H2还提供了一个简单的管理界面,使用下面的命令就可以启动H2管理界面:
默认情况下访问http://localhost:8082就可以访问到管理界面:
r2dbc-h2
r2dbc-h2是r2dbc spi的一种实现。同样的使用r2dbc-h2也提供了两种h2的模式,一种是文件系统,一种是内存。
同时还提供了事务支持,prepared statements和batch statements等特性的支持。
r2dbc-h2的Maven依赖
要想使用r2dbc-h2,我们需要添加如下依赖:
如果你体验snapshot版本,可以添加下面的依赖:
建立连接
h2有两种连接方式,file和内存,我们分别看一下都是怎么建立连接的:
我们还可以通过ConnectionFactoryOptions来创建更加详细的连接信息:
上面的例子中,我们使用到了driver,protocol, host,username,password和database这几个选项,除此之外H2ConnectionOption中定义了其他可以使用的Option:
当然还有最直接的database选项:
我们还可以通过H2特有的代码H2ConnectionFactory来创建:
参数绑定
在使用prepare statement的时候,我们需要进行参数绑定:
除了$符号绑定之外,还支持index绑定,如下所示:
批处理
我们来看下r2dbc-h2是怎么来进行批处理的:
事务和Savepoint
r2dbc还支持事务和savepoint,我们可以在事务中rollback到特定的savepoint。具体的代码如下:
本文作者:flydean程序那些事
本文链接:http://www.flydean.com/r2dbc-h2-in-depth/
本文来源:flydean的博客
欢迎关注我的公众号:「程序那些事」最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
版权声明: 本文为 InfoQ 作者【程序那些事】的原创文章。
原文链接:【http://xie.infoq.cn/article/de92f9e2f89ab5c495020b9c9】。文章转载请联系作者。
评论