java - 将java语言映射到数据库

标签 java database schema

我想在数据库模式中表示一些 Java 概念。我的意思不是将实例持久保存到 Hibernate 中,而是将 java 的类型系统表示为一系列表和行。

例如,对于类型,我想表示一组确定的关系。例如,Java中有两种类型,原始类型和引用类型,原始类型分割为数字和 boolean 类型,数字分割为整型和浮点类型,整型分割为字节短整型长型,字符类型和浮点类型分割分为 float 和 double (我想我是对的)。

Java 也有类,类有方法,方法有签名和构造函数以及返回类型和参数,两者都有某种类型。

所以我想创建一个以 3NF 形式表示此类信息的数据库。这样的数据库将允许查询对象实例,这些对象实例将是放入数据库的数据。

有这样的事情吗?我在 Google 中没有找到任何有用的东西,也许是因为很难编写一个不让您进入 JDBC 和 Hibernate 领域的查询。不过,我认为一定有人已经这样做了;也许甚至还有我不知道的标准或 RFC。

我不想尝试对 hibernate 之类的东西的某些方面进行逆向工程。我认为这实际上是一项艰巨的任务,但返回却很少。这并不是说我不能从头开始做(在通常的错误开始和犯下错误之后),而是我想知道它是否还没有在某个地方完成和规范。

非常感谢。

最佳答案

Object-Relational Impedance Mismatch是一个难题。如果您不想深入研究 Hibernate 或其他 ORM 层来尝试弄清楚它们是如何做到的,那么您将不得不自己重新发明轮子。

我们可以提出概念表示,例如对象表...并且您可以使用像 Hibernate 使用的继承策略。但如果你想捕获方法,你就必须弄清楚这一点(方法 - 对象关系?)如果你想捕获 @Override 的能力,你就必须弄清楚这一点。注释?等等等等

"I want to represent some java concepts in a database schema...which I think would actually be a large task with little payoff."

我想你已经回答了你自己的问题。您可能想问的问题是:“对于我真正想做的事情,有更好的方法吗?”

关于java - 将java语言映射到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10779644/

相关文章:

java - 在运行时操作 ANT 任务(设置属性)

java - 如何打开JTable?

Java - charAt()、equalsIgnoreCase、if 语句测试?

mysql - 如何比较 MySQL 中同一字段的两个不同值?

schema - 是否可以通过扩展覆盖 complexType 中元素的 minOccurs 和 maxOccurs 属性?

java - 具有 XML 配置支持的基于 Spring Java 的 Servlet 容器初始化(web.xml 替代方案)?

java - 两个 Hibernate 应用程序连接到同一个数据库

database - 任何可扩展的 OLAP 数据库(网络应用程序规模)?

Oracle SQL*Plus : How to include current schema in prompt?

python - 在没有非 python 依赖项的情况下在 Python 中验证 XML