H2是用Java编写的关系数据库管理系统。它可以嵌入Java应用程序中,也可以在客户端 - 服务器模式下运行。 H2支持常规的基于磁盘的数据库以及内存数据库。
localhost:8080 需要登录名和密码 - tomcat + h2
我看到了有关它的其他主题:这里,但我正在使用 Spring Boot 运行内存 DB H2,我不知道如何更改我的 H2 端口。这是唯一的方法吗?我不能在同一个端口上安装 Tomcat 和数据库吗?
我用自己的程序创建了数据库,它显示为 mydatabase.mv.db 文件。 但是,当我尝试使用 DbVisualizer 访问相同的数据库(参数明显相同)时,它创建了两个
我按照这个示例(How to dobulk (multi row) inserts with JpaRepository?)创建了一个 h2 数据库示例案例。但批量插入不起作用。 模型: @Table(名称=“用户”) @实体
我在我的应用程序属性文件中使用了以下设置。但仍然无法在 h2 控制台中看到我的表格。 应用程序属性 logging.level.org.springframework.web=信息 spring.datasource.url=
H2 - 默认生成的 IDENTITY 与手动分配 ID 的条目冲突
H2 是否支持自动生成的 ID 和具有显式定义的 ID 的 INSERT 之间的混合?有办法让这项工作发挥作用吗? 这是一个简单的例子: DROP TABLE IF EXISTS 测试; 创建表测试...
我有一套Play!我已经针对 H2 数据库运行了单元测试。我已经向我的模型添加了一些枚举列,但由于用于创建我的 sql 语句,测试现在失败了...
Spring-boot 使用 schema.sql 和 data.sql 填充 H2 数据库
我设置了 Spring-boot 来使用 H2 内存数据库 application.properties 文件位于 /config 目录中 看起来这个文件已被处理 spring.datasource.url=jdbc:h2:mem:mydb;
我有一个类型为 TEXT ARRAY 的 H2 列。 创建表 app.worklist ( id 整数, 专业文本数组 ); 我想查询是否有任何数组元素与 LIKE 参数匹配。 以下是...
如果您在使用 Liquibase 时尝试执行脚本在 H2(面向 PostgreSQL 的上下文)上创建功能索引,则会出现可疑错误。 脚本本身如下所示: 如果您在使用 Liquibase 时尝试执行脚本以在 H2(面向 PostgreSQL 的上下文)上创建功能索引,则会出现可疑错误。 脚本本身如下所示: <changeSet id="2" author="..."> <createIndex tableName="test_table" indexName="test_table_id_idx"> <column name="(date_trunc('day', create_date))"/> </createIndex> </changeSet> 错误信息: Syntax error in SQL statement "CREATE INDEX TEST_TABLE_ID_IDX ON TEST_TABLE(([*]DATE_TRUNC('day', CREATE_DATE)))"; expected "identifier"; SQL statement: CREATE INDEX test_table_id_idx ON test_table((date_trunc('day', create_date))) [42001-200] GitHub 上的 PoC 说实话,我不知道这样一个奇怪的脚本补充是从哪里出现的(关于这个[*])。也许 H2 不明白你需要使用哪个字段并替换 Vilcard 或类似的东西。 是的,我知道 H2 和真实 PostgreSQL 的实现中可能存在冲突和差异(如果那样的话,PostgreSQL 脚本执行正确),但我想了解是什么导致了脚本的这种变化。 H2 的错误消息中的[*] 标记了发现语法错误的位置。 H2 不支持表达式索引,只能对列建立索引。 H2 支持计算列上的索引,因此可以使用函数添加计算列,为其建立索引,并在查询中使用此计算列而不是基列上的函数,在这种情况下可以使用此索引。但我认为如果你的主数据库系统是 PostgreSQL,那不是你的本意。如果您仅将 H2 用于某些测试,则从 H2 的变更集中删除此类不兼容索引的创建更为合理。 使用 计算:正确 databaseChangeLog: - changeSet: dbms: postgresql changes: - createIndex: tableName: test_table indexName: test_table_id_idx columns: - column: **computed: true** name: ((create_date)::date)
如何在 Play Framework 2.4 中使用相对于项目根目录的路径来进行 H2 数据库文件配置?
我们正在开发 Play 2.4 应用程序(Java API)。 出于开发目的,我们希望使用持久性 H2 数据库,其数据库文件路径相对于项目根目录。 在如何使用持久...
我使用H2进行集成测试,使用spring与kotlin,jpa + hibernate。 我的代码中的模型有一个带有 columnDefinition = "JSON" 的字符串字段,这会导致 H2 出现问题。 导入j...
使用 SQL 和内部加密数据库在 Java 应用程序中实现安全用户帐户同步的最佳方法?
我正在开发一个 Java 应用程序,该应用程序具有 Angular 前端和基于 Java 的后端,该后端将连接到 SQL 数据库以进行一般数据存储。此外,我计划包括一个内部加密......
我们正在将项目从 Spring Boot 2.7 升级到 3.3.5,其中包括升级到 Hibernate 6。在生产中,我们使用 PostgreSQL,在本地开发中,我们使用 H2。 我们的
无法生成 org.h2.jdbcx.JdbcConnectionPool 类的 CGLIB 子类
问题: 我正在执行一个依赖项迁移任务,试图将 Spring 代码库从 Spring 2.6.9 迁移到 Spring 2.7.0。但是,我面临一些与迁移 H2 相关的问题。 我读了
这是我的sql脚本: -- 为工具租赁项目创建内存数据库。 -- 预计将替换为实际数据库 -- -- 创建Schema以供使用 如果不存在则创建架构
CREATE TABLE "INFO" ("ID" BIGINT NOT NULL PRIMARY KEY AUTO_INCRMENT[*], "OWNER" VARCHAR(255) NOT NULL)"; 预期为“HASH、CONSTRAINT、COMMENT、UNIQUE、NOT、N...
无法使用Spring-Data-JPA将数据保存到表(H2数据库)
我使用H2数据库版本2.2.224和Spring-Data-JPA版本3.3.3。我在“USERS”和“ROLES”表之间有多对多关系。 当我尝试保存“Ent...
我刚开始学习Spring,有一些东西不太清楚。 我的 pom 是这样完成的: 我刚开始学习Spring,有一些东西不太清楚。 我的 pom 是这样完成的: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> 当我启动应用程序时,抛出以下错误: 应用程序无法启动 描述: 配置数据源失败:未指定“url”属性,无法配置嵌入数据源。 原因:未能确定合适的驱动程序类别 行动: 考虑以下因素: 如果您想要嵌入式数据库(H2、HSQL 或 Derby),请将其放在类路径中。 如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有活动配置文件)。 如果我添加此依赖项: <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> 然后应用程序就可以运行了 我想了解 Jpa 是否需要 h2 才能工作,因为在许多示例中我看到通常不会添加此依赖项来使应用程序工作。 我检查了项目属性 --> Java 构建路径 --> 源(选项卡)--> 构建路径上的源文件夹 我注意到,在项目属性 --> Java 构建路径 --> 源(选项卡) --> 构建路径上的源文件夹中,在 src/main/resources 中,排除的项目标记为 **。 我删除了它,现在一切正常。 如果您使用 Spring starter 并且没有在 pom.xml 中指定任何特定数据库,那么 Spring Data 将为您配置默认的 H2(内存中)数据库。您不需要将 h2 工件放入 pom.xml 中。 但是在您的 pom.xml 中已经添加了 MySql 工件。在这种情况下,您必须告诉 Spring JPA 应该使用哪个数据库。例如,通过在 application.properties 中添加数据源详细信息。 如果您决定使用 MySQL,那么 pom.xml 中的工件将是: <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> application.properties 中的数据源定义为: spring.datasource.url=jdbc:mysql://localhost:3306/<some_db_name> spring.datasource.username=<some_username> spring.datasource.password=<some_password> spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 要让 Spring Data 在启动期间从实体类创建/更新数据库,请使用以下属性: spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=update 如果您想从 DDL 脚本创建数据库并从脚本文件插入一些数据 - 请使用以下属性: spring.jpa.hibernate.ddl-auto=none spring.sql.init.mode=always Spring 将使用位于类路径(默认)上的默认脚本 schema.sql 和 data.sql。更详细的 Spring 文档:https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.data-initialization.using-basic-sql-scripts
保存 Arena 数据时出现 Hibernate 异常(不存在具有给定标识符的行)
这是我第一次将 Hibernate ORM 集成到我的项目中,并且在尝试调试 org.hibernate.UnresolvableObjectException: No row with the给定标识符存在时遇到了一些麻烦
使用H2数据库(版本1.4.200)我在CTE内使用窗口函数时遇到了非常奇怪的错误。当我将窗口函数字段包含到 CTE 中并且 OVER() 子句为空时,它可以工作