问题标签 [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 中进行查询?
我怎样才能在 jDBI 中执行这样的事情?
桌子:foo(id int,name varchar)
类似于来自 myBatis 的 @SelectProvider。
有人问过类似的问题How do I create a Dynamic Sql Query at runtime using JDBI's Sql Object API? ,但不知何故,我不清楚答案。
java - X 天后从数据库中删除项目
我正在尝试制作一个 Java 线程,该线程必须从 MySQL 数据库中删除超过 7 天的所有记录。
在我的表中,我有一列包含这样的日期:2013-10-28 17:00:00
。
为此,我想使用 JDBI 库。以及我的问题,如果有人可以给我和我必须写的查询示例。
我认为它应该是这样的:
java - 日期字段未以正确格式给出值
在List<Map<String, Object>>
值中,我从数据库中获取值。数据库端我已经使用 defaultMapper 来映射值。现在,当我获取值时,只有一种 Date 类型的字段在上面的值中没有给出正确的结果。日期在 json 中以这种格式出现:“update_date”:1319529055000
谁能告诉我如何使用 defaultMapper 正确映射此日期字段?
java - 将事务与 JDBI / IDBI / Dropwizard 一起使用——回滚问题
我在让交易与 IDBI 一起工作时遇到了很多麻烦。我们正在使用 dropwizard 框架,并且简单的插入、更新、选择和删除都可以找到,但现在我们似乎无法让事务正常工作。这是我正在尝试的
这是我的 JustinTest2 课程
我也尝试过像这样实现 writeJustin:
我似乎无法让事务回滚,在每一种方式中,插入的行在回滚后总是存在,无论我是直接通过句柄尝试还是使用 inTransaction (根据我的理解,如果出现异常,则不应提交事务在回调中抛出)有人知道我可能做错了什么吗?
java - JDBI 插入问题
我正在使用 JDBI 将一些数据插入到具有自动增量主键的 mysql 表中。我使用索引来进行插入。代码如下所示:
这已经工作了一段时间,因为values[]
始终是正确的 count(32) 并且参数始终处于相同的顺序。现在虽然它必须处理传递一个较小的数组(18、19 或 20)并且仍然正确地进行插入;最后 14 个左右的 args 可以为空或空白。值的顺序仍然是静态的(即,如果传递 18 列,则它是表中的前 18 列)并且最后 20 列都是int(11)
列。
现在,当它传递一个小于 32 的数组时,它会给出如下错误:
解决这个问题的最佳方法是什么?
java - JDBI Object Query
I've used JDBI before for Java persistence stuff before but it's always been the fluent API not the object API. Trying the Object API now.
I've got a DAO Object that is pretty simple:
Tested the query in mysql, it works fine, but running it in a unit test:
I get an exception:
java.lang.IllegalStateException: Method com.hrweb.dao.PersonDAO#insertPerson is annotated as if it should return a value, but the method is void.
What am I doing wrong here?
java - 如何将 jdbiFactory DAO 注入 Dropwizard 命令?
我开始使用Dropwizard,我正在尝试创建一个需要使用数据库的命令。如果有人想知道我为什么要这样做,我可以提供充分的理由,但这不是我问题的重点。这是关于 Dropwizard 中的依赖倒置和服务初始化和运行阶段。
Dropwizard 鼓励使用其DbiFactory 来构建 DBI 实例,但为了获得一个,您需要一个Environment
实例和/或数据库配置:
如您所见,您的服务及其方法中的环境配置run()
,但需要在其方法中将命令添加到服务的引导程序中initialize()
。
到目前为止,我已经能够通过在我的 Commands 中扩展ConfiguredCommandDBI
并在它们的方法中创建实例来实现这一点run()
,但这是一个糟糕的设计,因为应该将依赖项注入到对象中,而不是在.
我更喜欢通过它们的构造函数注入 DAO 或我的命令的任何其他依赖项,但这对我来说目前似乎是不可能的,因为Environment
当我需要创建它们并将它们添加到它的引导程序时,在服务初始化中无法访问和配置。
有谁知道如何实现这一目标?
java - java.lang.NoClassDefFoundError: org/skife/jdbi/v2/DBI
我使用 JDBI 在我的计算机上本地创建了一个项目,它与数据库接口没有任何问题。
我现在在 Tomcat 服务器上使用相同的项目。我正在编译我的代码,javac -cp "lib/*" cs5530/*.java
其中 lib 包含我所依赖的外部 jar,例如 jdbi-2.49.jar。
这段代码是我创建新 DBI 的地方。
它在我的类构造函数中调用:
这是我得到的错误:
那么为什么它会在看到必要的类时编译得很好,然后在运行时出现问题,我将如何解决这个问题?
谢谢。
java - JDBI,使用 sql 查询将数据检索到自定义对象(构造函数)而不是 Map
所以当我们使用 JDBI 从数据库中查询时,它是把它变成一个Map<String, Object>
类型。
我想将它作为我的自定义对象(构造函数)而不是Map<String, Object>
.
相反,我想使用:
其中customizedObject
class 是一个包含所有列属性的对象。
有没有办法做到这一点?我找到了一些相关文档,但我无法真正理解实现。
java - 对于受影响的行,Mysql 总是返回 1
我有一个使用 JDBI/JDBC/Mysql 的 java 应用程序。
我正在尝试将一些更新语句作为事务运行,即设置 autoCommit(false)。当我执行语句时,JDBI 总是返回受影响的行数为 1,即使我希望它返回 0
这是代码片段。
我正在运行的 SQL 插入是类型
当我在 mysql 客户端中运行相同的查询时,它显示我受影响的行为 0。