【发布时间】:2016-04-02 01:13:18
【问题描述】:
我想使用 JOOQ 从 Ninja Framework 访问我的数据库。如何从控制器获取 JDBC 连接?
以下是我发现不太奏效的资源。
How to retrieve the datasource used by a persistence unit programmatically - 从 EntityManager 获取连接的繁琐步骤。
http://blog.jooq.org/2015/05/26/type-safe-queries-for-jpas-native-query-api/ - 通过在 JOOQ 中构建查询并传递给 EntityManager.createNativeQuery 来工作。它是功能性的,但不如仅仅拥有连接那么好。
我可以像这样将连接注入控制器吗:
public Result myController(@DBConnection Connection connection) {
List<String> articles = DSL.using(connection).selectFrom(ARTICLE).fetch(ARTICLE.TITLE);
return Results.html().render("template", articles);
}
DropWizards 有一个看起来像赢家的插件:https://github.com/benjamin-bader/droptools/tree/master/dropwizard-jooq
public BlogPost getPost(@QueryParam("id") int postId, @Context DSLContext database) {
BlogPostRecord post = database
.selectFrom(POST)
.where(POST.ID.equal(postId))
.fetchOne();
// do stuff
}
【问题讨论】:
-
有什么方法可以在 ninja 框架中获取
DataSource吗? -
我不能说。似乎 EntityManager 是唯一容易获得的。
标签: java jdbc dependency-injection ninjaframework