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

我可以让H2在内存数据库中自动创建架构吗?

锺英卫
2023-03-14
问题内容

(我已经看过[H2数据库在内存中-通过Spring /Hibernate问题的初始化架构;在这里不适用。)

我想知道H2中是否有设置,允许我在连接到它时自动创建一个模式。如果有帮助,我只对内存中的情况感兴趣。

H2在URL的末尾支持各种用分号分隔的修饰符,但是我找不到用于自动创建模式的修饰符。有这样的功能吗?


问题答案:

是的,H2支持在连接时执行SQL语句。您可以运行脚本,也可以只运行一两个语句:

String url = "jdbc:h2:mem:test;" + 
             "INIT=CREATE SCHEMA IF NOT EXISTS TEST"
String url = "jdbc:h2:mem:test;" + 
             "INIT=CREATE SCHEMA IF NOT EXISTS TEST\\;" + 
                  "SET SCHEMA TEST";
String url = "jdbc:h2:mem;" + 
             "INIT=RUNSCRIPT FROM '~/create.sql'\\;" + 
                  "RUNSCRIPT FROM '~/populate.sql'";

请注意,\\仅Java中需要双反斜杠()。前的反斜杠(ES);INIT是必需的。



 类似资料:
  • 问题内容: MyBatis是否有任何功能可以像Hibernate一样从类模型创建SQL模式? 我在Google中寻找该信息,但只找到有关MyBatis Generator的信息(http://mybatis.github.io/generator/)。这个工具对于从SQL模式生成Java模型似乎很有用,这与我想要的相反。 问题答案: MyBatis可以创建数据库架构吗? 恐怕不是。为此,您需要一个

  • 问题内容: 我无法启动启动时自动启动数据库架构的Spring Boot。 这是我的application.properties: 这是我的Application.java: 这是一个示例实体: 有什么想法我做错了吗? 问题答案: 有几种可能的原因: 您的实体类位于与之相对的同一个子包中,或者在一个子包中,如果没有,则您的spring应用不会看到它们,因此不会在db中创建任何内容 检查您的配置,似乎

  • 问题内容: 我目前正在使用jOOQ访问Java中的嵌入式H2数据库以生成表类等。我目前可以执行查询,例如 在我的代码中,返回结果等。 但是我不能查询信息架构。我可以使用H2控制台正常访问它,并且为给定的information_schema表创建视图可以正常工作。我的问题是我应该如何访问information_schema例如执行查询,例如 从我的Java代码中?我是否必须创建视图,是否可以通过jo

  • 我有一个spring-boot项目,该项目创建了一个H2内存数据库,其中包含由带有@Entity注释的类自动生成的表。我现在已经创建了另一个项目来连接到同一个数据库,但是每当我运行新的spring项目时,我认为创建了一个新的数据库来覆盖另一个数据库。 更新 尝试przemek hertel给出的答案,我得到以下错误:

  • 问题内容: 我想创建一个使用PDO与MySQL交互的类。我可以使用PDO创建一个新的MySQL表吗? 问题答案: 是的你可以。 该部分是PDO构造函数的第一个参数,不必具有数据库名称。您可以简单地使用。然后,如果您具有适当的特权,则可以使用常规SQL命令创建数据库和用户等。 以下是install.php的示例,它以root用户身份登录,创建一个数据库,一个用户,并向用户授予对新创建的数据库的所有特

  • 我的数据层中有几个实体存储在特定的模式中。例如: 我正在尝试设置H2嵌入式数据库,以便对我的数据层进行集成测试。我正在测试中使用DataJpaTest注释来自动配置H2嵌入式数据库。但是,表的创建失败,因为在DB初始化时未创建架构虚拟。 在测试用例中创建表之前,有没有关于如何创建模式的想法? 我尝试使用@Sql(statements=“CREATE SCHEMA IF NOT EXISTS DUM