H2数据库的安装和使用

本文详细介绍了H2数据库的下载、安装步骤,包括Windows和Linux平台的启动方法,创建数据库、配置选项以及数据库管理工具的使用。
摘要由CSDN通过智能技术生成

H2数据库的安装和使用

H2数据库的下载地址:

https://www.h2database.com/html/main.html

​ 在官网上选择一个版本进行下载,可以下载安装器或者直接下载软件包。这里我选择 “All Platforms (zip, 9.5 MB)” 版本,解压后,既可用于 Windows 平台,也可用于 Linux 平台(如下图所示)。

在这里插入图片描述

H2软件包目录结构

h2
 |—bin
 | |—h2-2.1.212.jar  //H2数据库的jar包(驱动也在里面)
 | |—h2.bat   //Windows控制台启动脚本
 | |—h2.sh   //Linux控制台启动脚本
 | |—h2w.bat  //Windows控制台启动脚本(不带黑屏窗口)
 |—docs   //H2数据库的帮助文档(内有H2数据库的使用手册)
 |—service   //通过wrapper包装成服务。
 |—src   //H2数据库的源代码
 |—build.bat  //windows构建脚本
 |—build.sh  //linux构建脚本

在这里插入图片描述
在这里插入图片描述

windows下启动软件

​ 我们可以进入到h2的bin目录下,点击h2.bat或者h2w.bat,运行软件。我这里选择的是点击h2w.bat(如上图蓝框),该方式会在后台运行。

Linux下启动软件

​ 在 Linux 环境下,首先用上传命令rz等把压缩文件(.zip)上传到某个目录下,用unzip命令解压,自动解压到h2目录下,然后在h2/bin目录下,运行./h2.sh 文件来启动数据库服务,但不建议这样直接启动,因为需要带一些参数,需要进行如下修改:

1).复制h2.sh为h2_server.sh文件:

​ # cp h2.sh h2_server.sh

2).用vim编辑h2_server.sh,如下:

#!/bin/sh dir=$(dirname" 0 " ) j a v a − c p " 0") java -cp " 0")javacp"dir/h2-2.1.212.jar: H 2 D R I V E R S : H2DRIVERS: H2DRIVERS:CLASSPATH" org.h2.tools.Server -tcpAllowOthers -webAllowOthers -webPort 8082 “$@”

3).说明:

org.h2.tools.Server: 以服务器模式启动;

-tcpAllowOthers: 允许远程机器通过TCP方式访问;

-webAllowOthers: 允许远程机器通过浏览器访问;

-webPort 8082: 默认的访问端口(8082为未被占用的端口,如果此端口已经被其他端口占用,则改为其他端口);

4).具体的运行方式:

chmod修改启动文件权限: # chmod +x h2_server.sh

输入如下命令后台运行: # nohup ./h2_server.sh & 回车

说明:nohup 命令可以在我们退出账户之后继续运行相应的进程,nohup 就是不挂起的意思(no hang up),& 表示让该进程实现后台运行。

该命令的一般形式为: # nohup command & 回车

创建h2数据库

创建数据库

​ H2启动后在桌面底部状态栏右边有一个黄色小图标:

在这里插入图片描述
​ 我们可以在windows窗口右下角黄色小图标处,右键点击H2控制台的图标,选择”Create a new database…“,创建一个新的数据库。
然后进入到控制台设置界面,设置数据库的存放路径和数据库名(如test),访问的用户名和密码,点击Create,则创建出test数据库(如下图)。

在这里插入图片描述
​ 这时候在bin目录下(当前目录)就会出现创建的数据库名称(如下图test.mv.db):

在这里插入图片描述
​ 用鼠标左键点击屏幕右下角H2控制台黄色小图标,则出现浏览器控制台界面如下图:

在这里插入图片描述
注意:

  1. 如果无法点击进入浏览器控制台界面,可以右键点击屏幕右下角H2控制台黄色小图标选择status,出现如下界面后输入H2 Console URL的IP和端口号即可
  2. JDBC URL: h2后填写test.mv.db所在文件夹路径

在这里插入图片描述
​ 最好在H2目录下创建data子目录,把数据库文件存放在该目录下。用鼠标左键点击屏幕右下角H2控制台黄色小图标,则出现浏览器控制台界面如下图:

在这里插入图片描述
​ 用鼠标左键点击屏幕右下角H2控制台黄色小图标,则出现浏览器控制台界面如下图:

在这里插入图片描述

​ 这时候,打开h2/data目录(如果data目录不存在,会创建该目录 ),则发现刚才创建的数据库已在目录中(如下图):

在这里插入图片描述

数据库管理界面

​ 点击测试或连接(Connect),则进入数据库管理界面(如下图)。

在这里插入图片描述

​ 输入【show databases; 和 show tables; 】命令,显示H2默认的数据库和表名(如下图)。

在这里插入图片描述

数据库配置

在这里插入图片描述

​ 我们可以点击【Preferences】按钮,进入到H2的配置界面,这里可以设置端口号等信息:

在这里插入图片描述

​ 点击【Save】,会在当前用户目录下创建数据库配置文件 .h2.server.properties (windows即用户目录,Linux即home目录),见【图16】中的第一个红框。

​ 点击【Translate】,会在h2/bin 目录下,创建一个 translation.properties 文件。

​ 点击【Shutdown】,关闭h2控制台,停止h2数据库服务(屏幕右下角黄色小图标没了)。

​ 如果没有手动配置 .h2.server.properties 文件,以 web-server 方式首次启动 H2 后,既用鼠标左键点击屏幕右下角H2控制台黄色小图标,就会出现web控制台界面,点击【Save】 按钮后就会在当前用户目录下自动创建该文件,或者每次连接【Connect】后,都会在当前用户目录下自动创建该文件。

#H2 Server Properties
#Wed December 27 13:14:20 CST 2023
webSSL=false
webAllowOthers=false
webPort=8082
0=Generic JNDI Data Source|javax.naming.InitialContext|java:comp/env/jdbc/Test|sa
1=Generic Teradata|com.teradata.jdbc.TeraDriver|jdbc:teradata://whomooz/|
2=Generic Snowflake|com.snowflake.client.jdbc.SnowflakeDriver|jdbc❄️//accountName.snowflakecomputing.com|
3=Generic Redshift|com.amazon.redshift.jdbc42.Driver|jdbc:redshift://endpoint:5439/database|
4=Generic Impala|org.cloudera.impala.jdbc41.Driver|jdbc:impala://clustername:21050/default|
5=Generic Hive 2|org.apache.hive.jdbc.HiveDriver|jdbc:hive2://clustername:10000/default|
6=Generic Hive|org.apache.hadoop.hive.jdbc.HiveDriver|jdbc:hive://clustername:10000/default|
7=Generic Azure SQL|com.microsoft.sqlserver.jdbc.SQLServerDriver|jdbc:sqlserver://http://name.database.windows.net:1433|
8=Generic Firebird Server|org.firebirdsql.jdbc.FBDriver|jdbc:firebirdsql:localhost:c:/temp/firebird/test|sysdba
9=Generic SQLite|org.sqlite.JDBC|jdbc:sqlite:test|sa
10=Generic DB2|com.ibm.db2.jcc.DB2Driver|jdbc:db2://localhost/test|
11=Generic Oracle|oracle.jdbc.driver.OracleDriver|jdbc:oracle:thin:@localhost:1521:XE|sa
12=Generic MS SQL Server 2000|com.microsoft.jdbc.sqlserver.SQLServerDriver|jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sqlexpress|sa
13=Generic MS SQL Server 2005|com.microsoft.sqlserver.jdbc.SQLServerDriver|jdbc:sqlserver://localhost;DatabaseName=test|sa
14=Generic PostgreSQL|org.postgresql.Driver|jdbc:postgresql:test|
15=Generic MySQL|com.mysql.cj.jdbc.Driver|jdbc:mysql://localhost:3306/test|
16=Generic MariaDB|org.mariadb.jdbc.Driver|jdbc:mariadb://localhost:3306/test|
17=Generic HSQLDB|org.hsqldb.jdbcDriver|jdbc:hsqldb:test;hsqldb.default_table_type=cached|sa
18=Generic Derby (Server)|org.apache.derby.client.ClientAutoloadedDriver|jdbc:derby://localhost:1527/test;create=true|sa
19=Generic Derby (Embedded)|org.apache.derby.iapi.jdbc.AutoloadedDriver|jdbc:derby:test;create=true|sa
20=Generic H2 (Server)|org.h2.Driver|jdbc:h2:tcp://localhost/~/test|sa
21=Generic H2 (Embedded)|org.h2.Driver|jdbc:h2:~/test|sa

数据库工具

​ 点击【Tools】,可以对H2数据库进行备份、还原、恢复、集群、运行脚本、删除文件等操作。

参考原文:H2内存数据库使用教程详解

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 Liquibase 管理 H2 数据库需要以下步骤: 1. 首先,需要在项目中添加 H2 数据库和 Liquibase 的支持。可以使用 Maven 或 Gradle 等构建工具来添加这些依赖项。 2. 然后,在项目中创建一个 Liquibase 的配置文件,例如 `liquibase.properties` 或者 `liquibase.yml`,并指定数据库连接信息、change log 文件等相关信息。 3. 在 `change log` 文件中,可以使用 Liquibase 的语法来定义数据库的 schema 和数据。例如,可以使用 `createTable` 来创建表,使用 `addColumn` 来添加列,使用 `insert` 来插入数据等。 4. 最后,在项目启动时,可以使用 Liquibase 的 API 来执行 change log 文件,并更新数据库的 schema 和数据。可以通过命令行或者 Java 代码来执行 Liquibase。 下面是一个示例 `liquibase.properties` 文件的内容: ``` driver: org.h2.Driver classpath: path/to/h2.jar url: jdbc:h2:mem:test username: sa password: changeLogFile: path/to/changelog.xml ``` 其中,`driver`、`classpath`、`url`、`username`、`password` 分别指定了数据库连接信息,`changeLogFile` 指定了 change log 文件的位置。 下面是一个示例 `changelog.xml` 文件的内容: ```xml <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd"> <changeSet id="1" author="me"> <createTable tableName="person"> <column name="id" type="INT"> <constraints primaryKey="true" nullable="false"/> </column> <column name="name" type="VARCHAR(50)"> <constraints nullable="false"/> </column> <column name="age" type="INT"> <constraints nullable="true"/> </column> </createTable> </changeSet> <changeSet id="2" author="me"> <insert tableName="person"> <column name="id" value="1"/> <column name="name" value="John"/> <column name="age" value="30"/> </insert> <insert tableName="person"> <column name="id" value="2"/> <column name="name" value="Jane"/> <column name="age" value="25"/> </insert> </changeSet> </databaseChangeLog> ``` 其中,`changeSet` 标签用于表示一个变更集,`createTable` 标签用于创建表,`insert` 标签用于插入数据。 使用 Liquibase 可以方便地管理 H2 数据库的 schema 和数据,同时也可以兼容其他数据库。在实际开发中,可以根据具体需求来使用 Liquibase 的不同功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值