问题标签 [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.
open-source - 我的开源库正在稳定。现在如何引起注意?
我最近稳定了一个用 Java 编写的主要开源库的开发。然后我在服务器端发表了一篇文章,给我带来了很多积极的(但也是批评的、建设性的)反馈。第一个贡献者,太棒了!
- 请参阅此处的文章:http ://www.theserverside.com/discussions/thread.tss?thread_id=61162
- 和图书馆:http: //jooq.sourceforge.net
因此,有了所有这些好的反馈,我对我的项目有一种很好的感觉,在某种程度上我正在创造一些有用和原创的东西。我的项目背后的一些关键想法,以及为什么我认为它是原创的:
- 这是一个或映射器。好的,现在这真的不是原创的...... ;-)
- 它具有代码生成功能。好吧,还是不是原创。但这总是很好。
- 它允许使用自己的领域特定语言在 Java 中创建类型安全的查询。这样更好。没有字符串连接。JPA 只是最近才从 Hibernate 复制标准查询。
- 它允许使用所有 SQL 功能这样做,包括复杂连接、嵌套选择、联合、别名等。现在这对我来说似乎是原创的。OR-mappers 倾向于尝试忽略 RDBMS 背后的关系数据模型。
- 它支持各种原生非标准功能,如 UDT、存储过程、原生函数等。我不知道有任何 or-mapper 可以做到这一点。
我认为这些关键思想对于非常特定类型的开发人员很有用。那个特定的开发者
- 将 Java 与庞大的遗留数据库接口。
- 熟悉 SQL 并希望广泛使用它。
- 不想学习任何新语言(HQL、JPQL 等)
- 不想花一分钟微调一些复杂的 XML 配置。
- 不想对 SQL 进行抽象,因为他的软件与他的数据库紧密耦合。我认为 Hibernate 或 JPA 的人似乎忽略了一些东西。
- 编辑:需要一个强大但轻量级的数据库访问库。例如,当他们为移动设备开发时(参见 SRM 的评论)。
现在是努力工作的开始。如何获得关注?我怎样才能获得更大的人群?我的项目如何变得相关?如何接触到“特定类型的开发人员”?
java - Oracle 包和 Java 包之间的映射
在我的数据库接口库jOOQ中,我想添加对 Oracle(或 DB2 等)包的支持。我已经实现了存储过程/函数支持,其中每个存储对象都被建模为生成的 Java 类。例如,这个存储的函数
将生成一个可以这样使用的类(注意,还有很多方便的方法,这个例子只是展示了一般的设计):
我选择映射SQL 函数-> Java 类的原因是因为存储过程允许复杂的返回值(几个 OUT 或 IN OUT 参数),我希望在调用过程后能够一一获取:
现在,这种设计适用于无法重载的存储函数/过程。然而,在 Oracle(或 DB2)的包中,我可以有几个同名的函数,比如
当我为每个函数(或过程)生成一个类时,我将与几个FAuthorExists
Java 类发生命名冲突。一个蹩脚的解决方案是在类名中添加一个索引,例如FAuthorExists2
, FAuthorExists3
。另一个蹩脚的解决方案是从参数名称/类型直接生成某种哈希值(或值本身)到类名中,例如FAuthorExistsVARCHAR2
, FAuthorExistsVARCHAR2VARCHAR2
. 出于显而易见的原因,这两种解决方案都是不可取的。
有没有人有一个简单的解决方案来解决这个问题?或者也许是一个更好的整体设计的想法,它不会产生这样的函数名称重载问题?
任何反馈表示赞赏!
java - JOOQ 和 Spring
有没有人尝试过将 JOOQ 与 Spring 框架一起使用,或者我是否正在开辟新天地?
java - java.sql.ResultSet、CallableStatement、SQLInput 没有通用接口
这是这种情况
在jOOQ中,非常需要对 JDBC 进行抽象。我希望 jOOQ 客户端代码不知道这样一个事实,即从简单的 ResultSet 检索一些数据,从 SQLInput(对于 UDT)或从 CallableStatements(对于存储过程/函数)检索一些数据。因此,我想对这些 JDBC 类型添加抽象:
现在它们的工作方式几乎相同。他们通常get
对set
. java.sql.Types
例如,他们提供了类似的方法
他们都有类似的方法
问题
不幸的是,这些 JDBC 接口并没有扩展单个通用接口,这让那些想要在这里编写像这个片段这样的通用 JDBC 代码的人的生活更轻松(只是一个支持我的问题的例子):
上面的代码需要为它们三个都编写,ResultSet
, CallableStatement
, SQLInput
。还有很多类似的例子
我的问题是
- 有谁知道优雅地解决这个问题的 JDBC 扩展库?
- 还是我应该自己为所有这些类型编写一个简单的包装类(或适配器)?
- 还是您会接受这个事实并继续复制内部库代码?
您更喜欢哪种解决方案,为什么?感谢您的任何反馈
sql - 如何在 DB2 中使用嵌套结构化类型 (UDT)?
我正在尝试使用 DB2 使用嵌套结构化类型 (UDT),但遇到了一些问题。
下面是用于为用例创建类型、表、函数和转换的 SQL 语句。每个语句都执行得很好,但是在尝试做一个简单的时候会发生错误
select * from t_author
:
当我尝试执行以下错误时发生select * from t_author;
:
任何想法我做错了什么?
我正在使用 DB2 v9.5 (Linux)。
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)
sql - 使用 Jooq 在数值基础上按 varchar 字段(具有数值)对查询进行排序
如何对 varchar 字段进行排序,我已将 ID 作为 varchar,我想对其进行数字排序。
我们可以在 SQL 中使用 using
我在 Jooq 拥有的是
java - 如何使用 Jooq 中的其他自定义(concat、sum、count)列从数据库中获取所有结果列
我有一个有 6 列的表 Table1。
这是我需要映射的 sql 语句。
现在,sql 查询结果将是 7 列(6 个 Table1 列和 1 个 IdCount 列)。但是当我用这个查询在 Jooq 中实现相同的功能时,它只得到一个单列“IDCount”。
现在,结果记录集只有一列“IdCount”,而我需要的是所有列和一个附加列“IdCount”。我也想要 Jooq 中的 7 列。
postgresql - 无法从 Jooq Jooq 配置 jooq.properties 为 postgresql 生成表
我已经从 MySQL 表中生成了 java 模型文件。但现在我们正在切换到 PostgreSQL,我需要在那里工作。所以我为 PostgreSQL 配置创建了一个新的 jooq.properties 文件。但是,它不会从表中生成任何模型文件。
PostgreSQL 的 jooq.properties 文件是
我在命令行中得到的输出是
pgAdmin3 中的 PostgreSQL 信息看起来像 pgsql->databases->ofbiz_olo->Schemas->public->Tables