H2 数据库入门和基本使用「建议收藏」

大家好,又见面了,我是你们的朋友全栈君。

目录

一、H2数据库安装

1、H2官方下载

2、安装H2数据库

3、登录H2数据库

4、登录错误解决

5、修改H2数据库密码

二、数据导入导出

1、数据导出

2、数据导入

3、数据插入

三、中文乱码解决

1、H2数据导入导出乱码处理

2、H2函数处理中文乱码

四、空间索引表的使用

1、创建空间索引表

2、几何空间相交查询

五、H2GIS空间扩展

1、H2GIS下载

2、H2GIS安装运行

3、H2GIS空间扩展

六、H2数据库备份

1、启动h2gis

2、数据库备份

3、H2GIS空间扩展

4、删除H2GIS空间扩展的表

5、注释压缩文件重新打包

6、导入数据

2、安装H2数据库

选择安装目录 -> 点击下一步 -> 安装 -> 完成

3、登录H2数据库

选择安装版的好处是安装之后有 H2 Console 图标,点击图标可以直接启动H2并使用默认浏览器访问H2登录页面

但是 win 2019-10-14 版本的 H2 数据库并没有自动创建一个test数据库,所以这里登录不了

报错信息如下:

Database “C:/Users/com/test” not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 (帮助)

4、登录错误解决

1、点击任务栏下的黄色小图标,选择 Create a new database

选择安装路径 C:\Users\com

注意:H2数据库默认安装在C:\Users\com下(com为系统用户名)

创建成功之后会在目录下新建一个 test.mv.db 文件

再次测试,连接成功

2、./ 读取的路径在%H2%/bin,如果用默认的 ./ 创建数据库,则在%H2%/bin下创建数据库 xx.mv.db 文件

xx.mv.db 为 H2 的数据库文件 ,tcp的URL默认读取的是 C:\Users\com下(com为系统用户名)的数据库文件

读取本地目录下的指定文件夹的数据库使用

(1) jdbc:h2:file: + 数据库路径 + 数据库名称

(2) jdbc:h2:tcp://localhost/ + 数据库路径 + 数据库名称

<code style="margin-left:0">jdbc:h2:file:D:/Program Files (x86)/H2/bin/sea</code>

<code style="margin-left:0">jdbc:h2:tcp://localhost/D:/Program Files (x86)/H2/bin/test001</code>

5、修改H2数据库密码

h2的用户名密码一般设置为 密码为空的sa用户

<code style="margin-left:0">ALTER USER SA SET PASSWORD ''</code>

二、数据导入导出

1、数据导出

<code style="margin-left:0">CALL CSVWRITE('D:\Hadoop\H2\hello_world.csv', 'SELECT * FROM hello_world');</code>

2、数据导入

<code style="margin-left:0">CREATE TABLE hello_world  AS SELECT * FROM CSVREAD('D:\Hadoop\H2\hello_world.csv')</code>

3、数据插入

<code style="margin-left:0">INSERT INTO hello_world SELECT * FROM CSVREAD('D:\Hadoop\H2\hello_world.csv');</code>

三、中文乱码解决

H2数据库导出CSV数据默认字符编码虽然是UTF-8,但是分隔符是 逗号
在导入的时候会中文乱码,解决办法是导出和导入时指定分隔符为 | ,字符编码为UTF-8

1、H2数据导入导出乱码处理

(1)新建测试表

<code style="margin-left:0">DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(ID INT PRIMARY KEY,NAME VARCHAR(255));
INSERT INTO TEST VALUES(1, 'Hello');
INSERT INTO TEST VALUES(2, 'World');
INSERT INTO TEST VALUES(3, '乔丹');
INSERT INTO TEST VALUES(4, '科比');
INSERT INTO TEST VALUES(5, '艾佛森');
INSERT INTO TEST VALUES(6, '麦迪');</code>

<code style="margin-left:0">SELECT * FROM TEST </code>

(2)指定编码导出表数据

<code style="margin-left:0">CALL CSVWRITE('D:\Hadoop\H2\test.csv', 'SELECT * FROM TEST', 'charset=UTF-8 fieldSeparator=|');</code>

(3)删除测试表重新导入

先删除测试的数据表

<code style="margin-left:0">DROP TABLE test</code>

测试读取文件是否会发生乱码

<code style="margin-left:0">CALL CSVREAD('D:\Hadoop\H2\test.csv','id|name', 'charset=UTF-8 fieldSeparator=|');</code>

重新指定字符编码和文件分隔符导入表

<code style="margin-left:0">CREATE TABLE test AS SELECT * FROM CSVREAD('D:\Hadoop\H2\test.csv','id|name', 'charset=UTF-8 fieldSeparator=|');</code>

(4)验证查询

重新导入后中文显示正常

<code style="margin-left:0">SELECT * FROM TEST </code>

2、H2函数处理中文乱码

使用H2自带的UTF-8函数处理

<code style="margin-left:0">CALL UTF8TOSTRING(STRINGTOUTF8('中文乱码测试!'))</code>

四、空间索引表的使用

1、创建空间索引表

<code style="margin-left:0">CREATE TABLE GEO_TABLE(GID SERIAL, THE_GEOM GEOMETRY);
INSERT INTO GEO_TABLE(THE_GEOM) VALUES
 ('POINT(500 505)'),
 ('LINESTRING(550 551, 525 512, 565 566)'),
 ('POLYGON ((550 521, 580 540, 570 564, 512 566, 550 521))');
CREATE SPATIAL INDEX GEO_TABLE_SPATIAL_INDEX ON GEO_TABLE(THE_GEOM);</code>

2、几何空间相交查询

<code style="margin-left:0">SET @POLY='POLYGON ((490 490, 536 490, 536 515, 490 515, 490 490))';
SELECT * FROM GEO_TABLE WHERE THE_GEOM && @POLY;</code>

五、H2GIS空间扩展

1、H2GIS下载

h2gis官网:http://www.h2gis.org/

h2gis文档:http://javadoc.orbisgis.org/

打开官方,点击 Download 下载

2、H2GIS安装运行

Linux

<code style="margin-left:0">wget https://github.com/orbisgis/h2gis/releases/download/v1.5.0/h2gis-dist-1.5.0-bin.zip -O h2gis.zip
unzip h2gis.zip
cd h2gis-standalone
nohup java -cp h2gis-dist-1.5.0.jar org.h2.tools.Server -tcpAllowOthers -tcpPort 9101 -webAllowOthers -webPort 8081 2>&1 &
## java -jar h2gis-dist-1.5.0.jar</code>

Windows

<code style="margin-left:0">## 将压缩包解压,cmd打开进入解压目录
cd h2gis-standalone
java -jar h2gis-dist-1.5.0.jar</code>

3、H2GIS空间扩展

初始化之后就有了H2扩展

<code style="margin-left:0">CREATE ALIAS IF NOT EXISTS H2GIS_SPATIAL FOR "org.h2gis.functions.factory.H2GISFunctions.load";
CALL H2GIS_SPATIAL();</code>

六、H2数据库备份

1、启动h2gis

<code style="margin-left:0">cd h2gis-standalone
java -cp h2gis-dist-1.5.0.jar org.h2.tools.Server -tcpAllowOthers -tcpPort 9101 -webAllowOthers -webPort 8081</code>

URL链接:jdbc:h2:tcp://127.0.0.1:9101/~/testdb

2、数据库备份

<code style="margin-left:0">java -cp /usr/local/hadoop/h2gis-standalone/bin/h2-1.4.197.jar org.h2.tools.Script -url jdbc:h2:tcp://127.0.0.1:8081/~/testdb -user sa -script /usr/local/hadoop/h2gis-standalone/table/testdb.zip -options compression zip</code>

3、H2GIS空间扩展

<code style="margin-left:0">CREATE ALIAS IF NOT EXISTS H2GIS_SPATIAL FOR "org.h2gis.functions.factory.H2GISFunctions.load";
CALL H2GIS_SPATIAL();</code>

4、删除H2GIS空间扩展的表

<code style="margin-left:0">DROP TABLE SPATIAL_REF_SYS ;
DROP TABLE GEOMETRY_COLUMNS ;</code>

5、注释压缩文件重新打包

6、导入数据

<code style="margin-left:0">java -cp /usr/local/hadoop/h2gis-standalone/bin/h2-1.4.197.jar org.h2.tools.RunScript -url jdbc:h2:tcp://127.0.0.1:9101/~/testdb -user sa -script /usr/local/hadoop/h2gis-standalone/table/testdb.zip -options compression zip</code>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182933.html原文链接:https://javaforall.cn

未经允许不得转载:木盒主机 » H2 数据库入门和基本使用「建议收藏」

赞 (0)

相关推荐

    暂无内容!