问题标签 [jdbi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6805 浏览

java - 如何在 JDBI sql api 中打印@SqlQuery 注释

我想知道 jdbi sql api 出于调试目的究竟处理了什么 sql 查询。我的接口类如下

后来在另一个班级中称为String result = myinterfaceclassobject.returnMeValue("Name",1);

我没有得到预期的答案,所以我想看看 sql 查询的实际情况。那么有什么方法可以获得最终处理的查询吗?

0 投票
2 回答
1913 浏览

java - 在使用 DropWizard JDBI 时使用自定义凭据

我正在使用 Dropwizard JDBI 框架开发网络服务。

现在,我不想在 yaml 文件中使用数据库配置,而是使用“用户指定的参数”,我的意思是,数据库配置将通过端点 url 提供。

  • 是否可以通过 dropwizard jdbi 获得自定义凭据?

如果是的话,在引用这个时我应该考虑在代码中做哪些更改?->

http://dropwizard.readthedocs.org/en/latest/manual/jdbi.html

我了解,在正常流程中,服务方法在运行方法中获取配置详细信息 -

-- 配置类

-- 服务等级

-- 和 yaml


但在这种情况下,我可能会在资源级别获得配置详细信息......

之类的——

如果有人能指出我的方向,我将不胜感激。

0 投票
2 回答
4586 浏览

java - 如何在 JDBI 中动态绑定表名

我尝试使用

在 JDBI 中我使用了

结果总是在单引号内:

有没有合适的方法来参数化类似的东西TableName

0 投票
1 回答
260 浏览

java - 在新的映射器类 jdbi sql fluent 查询中使用预定义的映射器类

我如何将一个类的预定义映射器类实现到另一个类的新映射器类中,该类具有第一类作为对象

假设Class1Mapper已经定义。

0 投票
1 回答
2001 浏览

java - How do we force Resource(controller) level transaction in Dropwizard with jdbi?

In spring, we have @Transactional annotation which can be specified at Controller, so everything happens inside a controller method is treated as one transaction. However in dropwizard, we can have transaction at a DAO level by implementing Transactional<DAOclass>. But if I use two DAOs in a single resource method, it is treated as two different transactions.

Say I have two DAOs

Dao1.java

Dao2.java

ArticleResource.java

In the above example, dao1 and dao2 have two different transactions. But I need everthing under a single transaction So is there any way of specifying transactional boundaries at Resource level?

0 投票
0 回答
1598 浏览

java - JDBI ResultSetMapper:将行部分映射到类

当我们为一个类定义 Mapper 时,我们必须获取 sql 查询中的每一列,以便与 jdbc resultsetmapper 中的类进行映射

例如。

为了使用这个映射器,我必须获取 Mapper 中使用的每一列,但如果我只获取 2 列,它将抛出 PSQLException。

因此,不是定义另一个 Mapper 来获取 2 列,是否有任何可能的方法来使用相同的 Mapper 映射到 MyClass?

0 投票
2 回答
3086 浏览

java - 在 Guice 中配置返回泛型类型的 Provider

Provider我正在尝试为使用 JDBI 创建的 DAO设置一个。JDBI 使用一个Handle对象(它是 JDBC 的包装器Connection),您可以通过使用handle.attach(MyDaoType.class). 不必Provider为每个 DAO 类编写单独的实现,我认为这样做是有意义的:

但似乎很难将其与 Guice 联系起来。我尝试按照此答案@Assisted中的建议在第一个构造函数参数上使用注释。我定义了一个这样的工厂:

但不清楚我应该如何调用该FactoryModuleBuilder.implemented方法,因为重点是我不想扩展我的提供程序类。

我有一个工厂,它返回一个返回我真正想要的东西的提供者,这似乎也有点疯狂!

让我感到震惊的是,使用 Spring DI 容器真的很容易做到这一点,所以我想相信使用 Guice 是可能的。谁能指出我正确的方向?

0 投票
1 回答
1274 浏览

jdbc - 用于处理大数据的 jdbi jdbc vertica 流式处理结果集

我正在尝试通过 Jdbi jdbc 连接到 vertica 以获得巨大的结果集。遵循 JDBI 文档并将其添加到 dao,

但似乎它将整个数据加载到内存中而不是流式传输

在此处输入图像描述

0 投票
4 回答
19345 浏览

java - 如何使用 JDBI SQL 对象 API 创建一对多关系?

我正在使用 JDBI 使用 dropwizard 创建一个简单的 REST 应用程序。下一步是集成与另一个具有一对多关系的新资源。直到现在我还想不出如何在我的 DAO 中创建一个方法来检索一个包含另一个表中的对象列表的对象。

POJO 表示将是这样的:

用户 POJO:

帐户 POJO:

DAO 应该看起来像这样

但是,当该方法具有单个对象作为返回值(Account而不是List<Account>)时,似乎无法访问 Mapper 类中超过一行的 resultSet 。我能找到的唯一接近的解决方案在https://groups.google.com/d/msg/jdbi/4e4EP-gVwEQ/02CRStgYGtgJ中进行了描述,但是该解决方案也只返回一个带有单个对象的 Set 似乎不太优雅的。(并且资源类不能正确使用。)

似乎有一种在流畅的 API 中使用Folder2的方法。但我不知道如何将它与 dropwizard 正确集成,我宁愿按照 dropwizard 文档中的建议坚持使用 JDBI 的 SQL 对象 API。

真的没有办法在 JDBI 中使用 SQL 对象 API 获得一对多的映射吗?这是一个数据库的基本用例,我认为我一定遗漏了一些东西。

非常感谢所有帮助,
  蒂尔曼

0 投票
1 回答
1173 浏览

java - 如何在 Java 中绑定 hstore[] 值

我正在尝试将人们的电话号码和地址存储在数据库表中。我想支持多个电话号码和地址,并希望不同国家/地区的格式有所不同。我决定使用 hstore 来实现这种灵活性并允许通过特定字段进行有效查询。就目前而言,我可以从数据库接收值,但找不到从 Java 插入它们的方法。该表(简化)如下所示:

我创建了一个自定义 JDBI Binder 来绑定值,但是我尝试无法执行该语句。目前 Binder 代码片段如下所示:

getHstoreArray 函数是将 java Array 转换为 SQL 数组的助手,如下所示:

我认为问题在于数据的编码。例如,对于数据(为简单起见,使用 JSON 表示法)

查询扩展为:

如果我尝试从 PGAdmin 的 SQL 编辑器运行它,返回的错误是:

我曾考虑使用 JSON 而不是 hstore[],但这会使特定字段的查询速度变慢且准确性降低(本质上是文本搜索),我宁愿避免使用它。我在 hstore 之前尝试的另一个选项是 UDT 数组,但如果不为 PGobject 编写解析器,甚至无法从数据库中读取它,这看起来不像是一项简单的任务。


编辑

我查看了数据库中的数据,并以以下方式转义:

我可以从 SQL 编辑器手动运行查询,但在 Java 中仍然没有运气。