通过 JDBC 访问分层数据 [关闭]

Posted

技术标签:

【中文标题】通过 JDBC 访问分层数据 [关闭]【英文标题】:Accessing hierarchical data via JDBC [closed] 【发布时间】:2011-08-13 16:26:53 【问题描述】:

我有一个包含列 ID 和父级的表菜单。我们可以使用普通的 JDBC(无 ORM)从数据库中加载分层数据吗?我们可以为所有数据库提供通用解决方案吗?

【问题讨论】:

这是什么数据库?对涉及层次结构的 SQL 查询的支持因数据库而异。 当然可以。 ORM 参数是非参数。 ORM 在幕后使用“普通 JDBC”。您有建设性和技术性的编程问题吗? 目前,我的应用程序支持多种数据库。 mysql、Oracle、PostgreSql 和 Sql server 是主要数据库 那么,您的问题是基于 SQL 而不是基于 JDBC? JDBC 只是 SQL 执行器。您可以使用 SQL 控制所选数据。 我们能有一个通用的解决方案吗???我的意思是我们只使用 JDBC API 【参考方案1】:

首先,design your database tables to store hierarchies。其次,使用recursive CTEs(Common Table Expressions)获取分层数据。如果没有关于您的数据库表结构和使用的查询的更多信息,我认为不可能给出更具体的答案。

请注意,最终跨数据库使用的查询可能会有所不同(我没有尝试验证跨数据库的递归 CTE 支持),即使递归 CTE 是 SQL99 规范的一部分。因此,可能没有通用的 SQL 查询,但肯定有可以采用的通用方法。

【讨论】:

我的意思是泛型是泛型解决方案,而不是泛型 sql 查询。这是解决这个问题的算法。感谢您的帮助 Vineet :) 阅读 CTE。如果数据库可以为您完成这项工作,则您不需要算法;适合 CTE 的数据库模型中所需的一切。【参考方案2】:

如果您的数据在关系数据库中,并且您的架构以分层方式表示它,那么 JDBC 可以提取它 - 假设您可以编写适当的查询。

我担心没有什么通用的。您必须编写这些查询,将结果加载到对象或数据结构中,然后将它们传递给您的 UI 进行渲染。

【讨论】:

我觉得这个链接可以帮我解决这个问题:patentgenius.com/image/6845376-6.html

以上是关于通过 JDBC 访问分层数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-如何将通过select语句从MySQL访问的数据存储到字符串中? [关闭]

使用 Spring JDBC Rowmapper 映射分层数据

JDBC分层开发

JDBC连接:即使所有Previlleges都被授予,用户也被拒绝访问[关闭]

通过JDBC访问数据库

JDBC