来自Dropwizard,我想给予Quarkus一个尝试。
我的问题是如何设置一个SQL中心方法,如JDBI,从Quarkus提供的功能中受益:React式、连接池管理、事务。
我很高兴使用JDBI作为数据库库,它是Dropwizard的标准配置:
- 使用完整的Postgres功能(JSONB,Postgis,...)编写普通SQL。
- 方便的参数和结果Map。
- 事务、批的注解。
- 注意准备好的陈述。
这个例子展示了它的方法,如果你不熟悉的话(非常低的代码,注解中的SQL):
public interface UserDao {
@SqlQuery("SELECT * FROM users WHERE id = :id")
@UseRowMapper(UserMapper.class)
User getUser(@Bind("id") int id);
}
字符串
我喜欢使用更好的postgres特性,并认为使用SQL可以达到目的。我对Hibernate或Panaches的实体Map和查询语言不感兴趣,但如果我需要用它来处理Map对象,那就这样吧。
React式Postgres驱动程序允许您编写自定义SQL,但似乎不像JDBI那样提供管理准备好的语句和Map的工具(我预见到了大量的样板代码)。
有尝试集成JDBI for Quarkus,但似乎处于早期阶段/采用率低/文档很少。
使用类似工作流程的人有什么提示吗?或者我错过的教程?
1条答案
按热度按时间cfh9epnr1#
使用Quarkus 2.16.x的JDBI有很好的运气。没有使用JBDI扩展--在第一次开始这个JDBI/Quarkus项目时并不知道它--但回头看,没有看到它的价值……但可能缺少了一些东西。
或多或少,我们让一个生产者制作Jdbi句柄,然后我们就像“正常”一样使用Jdbi。
效果相当不错;我们使用它来简单地插入/更新一些跟踪记录,然后读取/选择更大的OLAP类查询。在这两种情况下,使用接口方法,有点像上面的注解,但使用外部SQL文件(通过UseClasspathSqlLocator)。
HTH!