📜  h2 数据库 spring boot - Java (1)

📅  最后修改于: 2023-12-03 15:01:05.840000             🧑  作者: Mango

H2数据库Spring Boot - Java

简介

H2是一个以JAVA语言编写的嵌入式数据库,它被设计成非常快速、紧凑、高效、低延迟和可靠。H2数据库可通过嵌入式模式或者服务器模式来运行,可以快速、方便地将其集成到Spring Boot框架中。Spring Boot是一个基于Spring框架的Java应用程序开发框架,可用于构建独立的、基于生产的Spring应用程序。

安装和配置
Maven依赖

在你的Spring Boot项目中添加下面的依赖,即可使用H2数据库:

<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.4.197</version>
</dependency>
H2的配置

在Spring Boot的配置文件中添加以下配置,即可使用H2数据库:

spring.h2.console.enabled = true
spring.h2.console.path = /h2-console
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

其中,spring.h2.console.enabled属性可用于开启H2控制台,spring.h2.console.path属性可用于指定控制台路径,spring.datasource.url属性用于指定数据库URL,这里使用的是内存数据库,spring.datasource.driverClassName属性指定JDBC驱动程序,spring.datasource.usernamespring.datasource.password属性指定数据库的用户名和密码。

使用H2数据库
嵌入式模式

在Spring Boot应用程序中使用H2数据库时,可以使用嵌入式模式。在嵌入式模式下,应用程序可以使用相同的JVM进程运行H2数据库。以下是使用嵌入式模式的示例:

@Configuration
public class H2DatabaseConfiguration {

   @Bean
   public DataSource dataSource() {

       EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
       return builder.setType(EmbeddedDatabaseType.H2)
                .addScript("classpath:create-db.sql")
                .build();
   }

}

在上面的代码中,我们定义了一个dataSource()方法,它返回一个嵌入式H2数据库。在这个示例中,我们使用的是EmbeddedDatabaseType.H2类型,并且在addScript()中指定了要运行的SQL脚本的位置。

服务器模式

在服务器模式下,应用程序连接到运行在不同JVM进程上的H2数据库。为了使用服务器模式,请按照以下步骤操作:

  1. 下载并安装H2数据库服务器;
  2. 启动H2数据库服务器;
  3. 在应用程序的配置文件中配置H2数据库连接,如下所示:
spring.datasource.url=jdbc:h2:tcp://localhost:9092/testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

在以上示例中,我们使用了TCP协议连接到H2数据库服务器,并指定了端口号为9092。

可视化控制台

通过将spring.h2.console.enabled属性设置为true,可以启用H2数据库的Web控制台。Web控制台可用于执行SQL查询、插入、更新和删除操作,还可以查看表、索引、序列和触发器等信息。可以通过在浏览器中输入URI路径/h2-console来访问Web控制台。

结论

H2数据库是一个高效且易于使用的数据库,可用于构建Spring Boot应用程序。借助H2数据库,可以在应用程序中启用嵌入式数据库和服务器数据库,并使用可视化控制台进行管理和操作。