问题标签 [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.
java - 如何在 JDBI sql api 中打印@SqlQuery 注释
我想知道 jdbi sql api 出于调试目的究竟处理了什么 sql 查询。我的接口类如下
后来在另一个班级中称为String result = myinterfaceclassobject.returnMeValue("Name",1);
我没有得到预期的答案,所以我想看看 sql 查询的实际情况。那么有什么方法可以获得最终处理的查询吗?
java - 在使用 DropWizard JDBI 时使用自定义凭据
我正在使用 Dropwizard JDBI 框架开发网络服务。
现在,我不想在 yaml 文件中使用数据库配置,而是使用“用户指定的参数”,我的意思是,数据库配置将通过端点 url 提供。
- 是否可以通过 dropwizard jdbi 获得自定义凭据?
如果是的话,在引用这个时我应该考虑在代码中做哪些更改?->
http://dropwizard.readthedocs.org/en/latest/manual/jdbi.html
我了解,在正常流程中,服务方法在运行方法中获取配置详细信息 -
-- 配置类
-- 服务等级
-- 和 yaml
但在这种情况下,我可能会在资源级别获得配置详细信息......
之类的——
如果有人能指出我的方向,我将不胜感激。
java - 如何在 JDBI 中动态绑定表名
我尝试使用
在 JDBI 中我使用了
结果总是在单引号内:
有没有合适的方法来参数化类似的东西TableName
?
java - 在新的映射器类 jdbi sql fluent 查询中使用预定义的映射器类
我如何将一个类的预定义映射器类实现到另一个类的新映射器类中,该类具有第一类作为对象
假设Class1Mapper
已经定义。
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?
java - JDBI ResultSetMapper:将行部分映射到类
当我们为一个类定义 Mapper 时,我们必须获取 sql 查询中的每一列,以便与 jdbc resultsetmapper 中的类进行映射
例如。
为了使用这个映射器,我必须获取 Mapper 中使用的每一列,但如果我只获取 2 列,它将抛出 PSQLException。
因此,不是定义另一个 Mapper 来获取 2 列,是否有任何可能的方法来使用相同的 Mapper 映射到 MyClass?
java - 在 Guice 中配置返回泛型类型的 Provider
Provider
我正在尝试为使用 JDBI 创建的 DAO设置一个。JDBI 使用一个Handle
对象(它是 JDBC 的包装器Connection
),您可以通过使用handle.attach(MyDaoType.class)
. 不必Provider
为每个 DAO 类编写单独的实现,我认为这样做是有意义的:
但似乎很难将其与 Guice 联系起来。我已尝试按照此答案@Assisted
中的建议在第一个构造函数参数上使用注释。我定义了一个这样的工厂:
但不清楚我应该如何调用该FactoryModuleBuilder.implemented
方法,因为重点是我不想扩展我的提供程序类。
我有一个工厂,它返回一个返回我真正想要的东西的提供者,这似乎也有点疯狂!
让我感到震惊的是,使用 Spring DI 容器真的很容易做到这一点,所以我想相信使用 Guice 是可能的。谁能指出我正确的方向?
jdbc - 用于处理大数据的 jdbi jdbc vertica 流式处理结果集
我正在尝试通过 Jdbi jdbc 连接到 vertica 以获得巨大的结果集。遵循 JDBI 文档并将其添加到 dao,
但似乎它将整个数据加载到内存中而不是流式传输
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 获得一对多的映射吗?这是一个数据库的基本用例,我认为我一定遗漏了一些东西。
非常感谢所有帮助,
蒂尔曼
java - 如何在 Java 中绑定 hstore[] 值
我正在尝试将人们的电话号码和地址存储在数据库表中。我想支持多个电话号码和地址,并希望不同国家/地区的格式有所不同。我决定使用 hstore 来实现这种灵活性并允许通过特定字段进行有效查询。就目前而言,我可以从数据库接收值,但找不到从 Java 插入它们的方法。该表(简化)如下所示:
我创建了一个自定义 JDBI Binder 来绑定值,但是我尝试无法执行该语句。目前 Binder 代码片段如下所示:
getHstoreArray 函数是将 java Array 转换为 SQL 数组的助手,如下所示:
我认为问题在于数据的编码。例如,对于数据(为简单起见,使用 JSON 表示法)
查询扩展为:
如果我尝试从 PGAdmin 的 SQL 编辑器运行它,返回的错误是:
我曾考虑使用 JSON 而不是 hstore[],但这会使特定字段的查询速度变慢且准确性降低(本质上是文本搜索),我宁愿避免使用它。我在 hstore 之前尝试的另一个选项是 UDT 数组,但如果不为 PGobject 编写解析器,甚至无法从数据库中读取它,这看起来不像是一项简单的任务。
编辑
我查看了数据库中的数据,并以以下方式转义:
我可以从 SQL 编辑器手动运行查询,但在 Java 中仍然没有运气。