问题标签 [jooq]

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 投票
1 回答
356 浏览

open-source - 我的开源库正在稳定。现在如何引起注意?

我最近稳定了一个用 Java 编写的主要开源库的开发。然后我在服务器端发表了一篇文章,给我带来了很多积极的(但也是批评的、建设性的)反馈。第一个贡献者,太棒了!

因此,有了所有这些好的反馈,我对我的项目有一种很好的感觉,在某种程度上我正在创造一些有用和原创的东西。我的项目背后的一些关键想法,以及为什么我认为它是原创的:

  • 这是一个或映射器。好的,现在这真的不是原创的...... ;-)
  • 它具有代码生成功能。好吧,还是不是原创。但这总是很好。
  • 它允许使用自己的领域特定语言在 Java 中创建类型安全的查询。这样更好。没有字符串连接。JPA 只是最近才从 Hibernate 复制标准查询。
  • 它允许使用所有 SQL 功能这样做,包括复杂连接、嵌套选择、联合、别名等。现在这对我来说似乎是原创的。OR-mappers 倾向于尝试忽略 RDBMS 背后的关系数据模型。
  • 它支持各种原生非标准功能,如 UDT、存储过程、原生函数等。我不知道有任何 or-mapper 可以做到这一点。

我认为这些关键思想对于非常特定类型的开发人员很有用。那个特定的开发者

  • 将 Java 与庞大的遗留数据库接口。
  • 熟悉 SQL 并希望广泛使用它。
  • 不想学习任何新语言(HQL、JPQL 等)
  • 不想花一分钟微调一些复杂的 XML 配置。
  • 不想对 SQL 进行抽象,因为他的软件与他的数据库紧密耦合。我认为 Hibernate 或 JPA 的人似乎忽略了一些东西。
  • 编辑:需要一个强大但轻量级的数据库访问库。例如,当他们为移动设备开发时(参见 SRM 的评论)。

现在是努力工作的开始。如何获得关注?我怎样才能获得更大的人群?我的项目如何变得相关?如何接触到“特定类型的开发人员”?

0 投票
3 回答
1220 浏览

java - Oracle 包和 Java 包之间的映射

在我的数据库接口库jOOQ中,我想添加对 Oracle(或 DB2 等)包的支持。我已经实现了存储过程/函数支持,其中每个存储对象都被建模为生成的 Java 类。例如,这个存储的函数

将生成一个可以这样使用的类(注意,还有很多方便的方法,这个例子只是展示了一般的设计):

我选择映射SQL 函数-> Java 类的原因是因为存储过程允许复杂的返回值(几个 OUT 或 IN OUT 参数),我希望在调用过程后能够一一获取:

现在,这种设计适用于无法重载的存储函数/过程。然而,在 Oracle(或 DB2)的包中,我可以有几个同名的函数,比如

当我为每个函数(或过程)生成一个类时,我将与几个FAuthorExistsJava 类发生命名冲突。一个蹩脚的解决方案是在类名中添加一个索引,例如FAuthorExists2, FAuthorExists3。另一个蹩脚的解决方案是从参数名称/类型直接生成某种哈希值(或值本身)到类名中,例如FAuthorExistsVARCHAR2, FAuthorExistsVARCHAR2VARCHAR2. 出于显而易见的原因,这两种解决方案都是不可取的。

有没有人有一个简单的解决方案来解决这个问题?或者也许是一个更好的整体设计的想法,它不会产生这样的函数名称重载问题?

任何反馈表示赞赏!

0 投票
8 回答
16722 浏览

java - JOOQ 和 Spring

有没有人尝试过将 JOOQ 与 Spring 框架一起使用,或者我是否正在开辟新天地?

http://www.jooq.org

0 投票
3 回答
3468 浏览

java - java.sql.ResultSet、CallableStatement、SQLInput 没有通用接口

这是这种情况

jOOQ中,非常需要对 JDBC 进行抽象。我希望 jOOQ 客户端代码不知道这样一个事实,即从简单的 ResultSet 检索一些数据,从 SQLInput(对于 UDT)或从 CallableStatements(对于存储过程/函数)检索一些数据。因此,我想对这些 JDBC 类型添加抽象:

现在它们的工作方式几乎相同。他们通常getset. java.sql.Types例如,他们提供了类似的方法

他们都有类似的方法

问题

不幸的是,这些 JDBC 接口并没有扩展单个通用接口,这让那些想要在这里编写像这个片段这样的通用 JDBC 代码的人的生活更轻松(只是一个支持我的问题的例子):

上面的代码需要为它们三个都编写,ResultSet, CallableStatement, SQLInput。还有很多类似的例子

我的问题是

  • 有谁知道优雅地解决这个问题的 JDBC 扩展库?
  • 还是我应该自己为所有这些类型编写一个简单的包装类(或适配器)?
  • 还是您会接受这个事实并继续复制内部库代码?

您更喜欢哪种解决方案,为什么?感谢您的任何反馈

0 投票
3 回答
1610 浏览

sql - 如何在 DB2 中使用嵌套结构化类型 (UDT)?

我正在尝试使用 DB2 使用嵌套结构化类型 (UDT),但遇到了一些问题。

下面是用于为用例创建类型、表、函数和转换的 SQL 语句。每个语句都执行得很好,但是在尝试做一个简单的时候会发生错误 select * from t_author

当我尝试执行以下错误时发生select * from t_author;

任何想法我做错了什么?

我正在使用 DB2 v9.5 (Linux)。

0 投票
2 回答
293 浏览

java - 我的开源 Java 持久性库还应该支持哪些其他 RDBMS

我正在发布一个新版本的jOOQ,这是一个构建在 JDBC 之上的 Java 持久性库。目前,我支持这七个 RDBMS:

  • 甲骨文
  • MySQL
  • Postgres
  • H2
  • 数据库
  • DB2
  • SQLite(实验性)

我想通过 jOOQ 提供广泛而强大的 RDBMS 支持。这意味着我必须非常有选择性才能为我的集成测试提供稳健性。同时,我还要满足终端用户支持重要数据库的需求。我希望我的最终用户严重依赖他们的数据库。jOOQ 不是 OR 映射器。相反,jOOQ 包含特定于供应商的功能,例如存储过程,所以底层数据库对我来说真的很重要。

在下一个版本中,我想添加更多 RDBMS 支持。例如:

  • 微软 SQL
  • 德比

你会建议什么,为什么?请根据客观理由进行解释并引用您的参考资料。

更新

现在支持以下 RDBMS。再次感谢您的反馈

  • 立方体
  • 德比
  • 安格尔
  • SQL 服务器
  • Sybase(SQL Anywhere 和 ASE)
0 投票
3 回答
5135 浏览

java - Java:JOOQ 持久化框架的性能和反馈

偶然发现了一个不错的 SQL 构建器框架,称为JOOQ。顺便说一句,在俄语 JOOQ 中听起来像名词,意思是“虫子”(作为昆虫)、“甲虫”;)

如果您对 JOOQ 有任何反馈,它的性能等,请分享。也欢迎链接到有关 JOOQ 的博客。

0 投票
1 回答
298 浏览

sql - 使用 Jooq 在数值基础上按 varchar 字段(具有数值)对查询进行排序

如何对 varchar 字段进行排序,我已将 ID 作为 varchar,我想对其进行数字排序。

我们可以在 SQL 中使用 using

我在 Jooq 拥有的是

0 投票
1 回答
10047 浏览

java - 如何使用 Jooq 中的其他自定义(concat、sum、count)列从数据库中获取所有结果列

我有一个有 6 列的表 Table1。

这是我需要映射的 sql 语句。

现在,sql 查询结果将是 7 列(6 个 Table1 列和 1 个 IdCount 列)。但是当我用这个查询在 Jooq 中实现相同的功能时,它只得到一个单列“IDCount”。

现在,结果记录集只有一列“IdCount”,而我需要的是所有列和一个附加列“IdCount”。我也想要 Jooq 中的 7 列。

0 投票
1 回答
2471 浏览

postgresql - 无法从 Jooq Jooq 配置 jooq.properties 为 postgresql 生成表

我已经从 MySQL 表中生成了 java 模型文件。但现在我们正在切换到 PostgreSQL,我需要在那里工作。所以我为 PostgreSQL 配置创建了一个新的 jooq.properties 文件。但是,它不会从表中生成任何模型文件。

PostgreSQL 的 jooq.properties 文件是

我在命令行中得到的输出是

pgAdmin3 中的 PostgreSQL 信息看起来像 pgsql->databases->ofbiz_olo->Schemas->public->Tables