当前位置: 首页 > 面试题库 >

访问H2数据库架构

微生运浩
2023-03-14
问题内容

我目前正在使用jOOQ访问Java中的嵌入式H2数据库以生成表类等。我目前可以执行查询,例如

create.select().from(TEST).fetch()

在我的代码中,返回结果等。

但是我不能查询信息架构。我可以使用H2控制台正常访问它,并且为给定的information_schema表创建视图可以正常工作。我的问题是我应该如何访问information_schema例如执行查询,例如

SELECT * FROM INFORMATION_SCHEMA.TABLES

从我的Java代码中?我是否必须创建视图,是否可以通过jooq-meta或其他方式访问该模式,还是需要向jooq-
codegen使用的属性文件中添加一些内容(information_schema未在生成的表类中创建) ?或者是其他东西?

编辑:这是我第一次尝试使用jooq,并且来自MySQL背景。我要有效地实现的目标是能够运行一些单元测试,以确保与DB相关的代码正常工作。因此,我想访问数据库的元数据(模式)并返回某些内容,而不必知道是否存在任何用户创建的表。


问题答案:

您可以像生成INFORMATION_SCHEMA其他任何模式一样为类生成类。实际上,jOOQ-meta包含对数据库架构进行逆向工程所需的某些类。

该手册的有关高级代码生成属性部分提到如何配置代码生成器加载多个“输入模式”:

<database>
  <schemata>
    <schema>
      <inputSchema>...</inputSchema>
    </schema>
    [ <schema>...</schema> ... ]
  </schemata>
</database>


 类似资料:
  • 在Spring Boot项目中,我试图从我的IDE中查看内存中的表。 如何从Intellij IDEA访问内存中的h2数据库。 这是我的应用程序的一个片段。yml:

  • ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到 Web 页的技术。可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源。如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现 ADO 命令语句并不复杂而且容易掌握。同样地,如果您是一

  • 对许多Web应用程序而言,数据库都是其核心所在。数据库几乎可以用来存储你想查询和修改的任何信息,比如用户信息、产品目录或者新闻列表等。 Go没有内置的驱动支持任何的数据库,但是Go定义了database/sql接口,用户可以基于驱动接口开发相应数据库的驱动,5.1小节里面介绍Go设计的一些驱动,介绍Go是如何设计数据库驱动接口的。5.2至5.4小节介绍目前使用的比较多的一些关系型数据驱动以及如何使

  • 程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。 而如何定义数据的存储格式就是一个大问题。如果我们自己来定义存储格式,比如保存一个班级所有学生的成绩单: 名字 成绩 Michael 99 Bob 85 Bart 59 Lisa 87 你可以用一个文本文件保存,一行保存一个学生,用,隔开

  • 程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。 而如何定义数据的存储格式就是一个大问题。如果我们自己来定义存储格式,比如保存一个班级所有学生的成绩单: 名字 成绩 Michael 99 Bob 85 Bart 59 Lisa 87 你可以用一个文本文件保存,一行保存一个学生,用,隔开

  • 主要内容:ADO.Net对象模型,数据提供者,数据集(DataSet),连接到数据库,示例1,示例3应用程序与数据库进行通信,首先检索存储在数据库中的数据,并以便于用户使用的方式显示;其次,通过插入,修改和删除数据来更新数据库中的数据。 Microsoft ActiveX Data Objects.Net(ADO.Net)是一个模型,是.NET应用程序用于检索,访问和更新数据的.Net框架的一部分。 ADO.Net对象模型 ADO.Net对象模型不过是通过各种组件的结构化流程流程。对象模型可以描