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

H2 数据库入门和基本使用「建议收藏」1、下载安装包H2官网:http://h2database.com/html/main.html2、安装H2数据库选择安装目录->点击下一步->安装->完成

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目录

一、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、导入数据


一、H2数据库安装

1、H2官方下载

H2官网:http://h2database.com/html/main.html

H2教程一:https://www.ctolib.com/docs/sfile/h2-database-doc/Quickstart/index.html

H2教程二:http://www.vue5.com/h2_database/h2_database.html

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

2、安装H2数据库 

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

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

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

3、登录H2数据库

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

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 

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

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

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

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

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

再次测试,连接成功

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

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

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

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

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

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

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

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

jdbc:h2:file:D:/Program Files (x86)/H2/bin/sea
jdbc:h2:tcp://localhost/D:/Program Files (x86)/H2/bin/test001

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

5、修改H2数据库密码

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

ALTER USER SA SET PASSWORD ''

二、数据导入导出

1、数据导出

CALL CSVWRITE('D:\Hadoop\H2\hello_world.csv', 'SELECT * FROM hello_world');

2、数据导入 

CREATE TABLE hello_world  AS SELECT * FROM CSVREAD('D:\Hadoop\H2\hello_world.csv')

3、数据插入

INSERT INTO hello_world SELECT * FROM CSVREAD('D:\Hadoop\H2\hello_world.csv');

三、中文乱码解决

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

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

(1)新建测试表

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, '麦迪');
SELECT * FROM TEST 

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

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

CALL CSVWRITE('D:\Hadoop\H2\test.csv', 'SELECT * FROM TEST', 'charset=UTF-8 fieldSeparator=|');

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

先删除测试的数据表

DROP TABLE test

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

CALL CSVREAD('D:\Hadoop\H2\test.csv','id|name', 'charset=UTF-8 fieldSeparator=|');

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

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

CREATE TABLE test AS SELECT * FROM CSVREAD('D:\Hadoop\H2\test.csv','id|name', 'charset=UTF-8 fieldSeparator=|');

(4)验证查询

重新导入后中文显示正常

SELECT * FROM TEST 

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

2、H2函数处理中文乱码

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

CALL UTF8TOSTRING(STRINGTOUTF8('中文乱码测试!'))

四、空间索引表的使用

1、创建空间索引表

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);

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

2、几何空间相交查询

SET @POLY='POLYGON ((490 490, 536 490, 536 515, 490 515, 490 490))';
SELECT * FROM GEO_TABLE WHERE THE_GEOM && @POLY;

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

五、H2GIS空间扩展

1、H2GIS下载

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

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

打开官方,点击 Download 下载 

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

2、H2GIS安装运行

Linux

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

Windows

## 将压缩包解压,cmd打开进入解压目录
cd h2gis-standalone
java -jar h2gis-dist-1.5.0.jar

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

3、H2GIS空间扩展

初始化之后就有了H2扩展

CREATE ALIAS IF NOT EXISTS H2GIS_SPATIAL FOR "org.h2gis.functions.factory.H2GISFunctions.load";
CALL H2GIS_SPATIAL();

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

六、H2数据库备份

1、启动h2gis

cd h2gis-standalone
java -cp h2gis-dist-1.5.0.jar org.h2.tools.Server -tcpAllowOthers -tcpPort 9101 -webAllowOthers -webPort 8081

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

2、数据库备份

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

3、H2GIS空间扩展

CREATE ALIAS IF NOT EXISTS H2GIS_SPATIAL FOR "org.h2gis.functions.factory.H2GISFunctions.load";
CALL H2GIS_SPATIAL();

4、删除H2GIS空间扩展的表

DROP TABLE SPATIAL_REF_SYS ;
DROP TABLE GEOMETRY_COLUMNS ;

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

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

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

6、导入数据

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • layoutparams方法_LAYOUT

    layoutparams方法_LAYOUT沙翁向昨天要经验;向今天要结果;向明天要动力Android开发:LayoutParams的用法LayoutParams继承于Android.View.ViewGroup.LayoutParams.    LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout

    2022年9月21日
    0
  • caller callee c语言 函数调用_Java invoke

    caller callee c语言 函数调用_Java invoke1、什么是JVM?JVM本质上就是一个软件,是计算机硬件的一层软件抽象,在这之上才能够运行Java程序,JAVA在编译后会生成类似于汇编语言的JVM字节码,与C语言编译后产生的汇编语言不同的是,C编译成的汇编语言会直接在硬件上跑,但JAVA编译后生成的字节码是在J今天在遇到个问题,如何在callee中获取caller的信息?搜索了一下,java提供一种如下的方法:StackTraceElemen…

    2025年7月16日
    2
  • 不同数据库的特点_简述数据库的特点

    不同数据库的特点_简述数据库的特点MySQL1.事务四大特性原子性:不可分割的操作单元,事务中所有操作,要么全部成功;要么撤回到执行事务之前的状态一致性:如果在执行事务之前数据库是一致的,那么在执行事务之后数据库也还是一致的;

    2022年8月1日
    6
  • 数组和链表的区别和优缺点总结!

    数组和链表的区别和优缺点总结!数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。链表中各结点在内存中的存放位置是任意的。 链表与数组的主要区别(1)数组的元素个数是固定的,而组成链表的结点个数可按需要增减;(2)数组元素的存诸单元在数组定义时分配,链表结点的存储单元在程序执行时动态向系统申请:(3)数组中的元素顺序关系由元素在数组中的位置(即下标)确定,链表中的结点顺序关系…

    2022年6月16日
    26
  • 2022年流动式起重机司机考试题库模拟考试平台操作「建议收藏」

    2022年流动式起重机司机考试题库模拟考试平台操作「建议收藏」题库来源:安全生产模拟考试一点通公众号小程序2022年流动式起重机司机特种作业证考试题库系流动式起重机司机考题的多种练习模式!2022年流动式起重机司机考试题库模拟考试平台操作根据流动式起重机司机考前押题。流动式起重机司机全部考试题库通过安全生产模拟考试一点通上错题练习。1、【多选题】《中华人民共和国特种设备安全法》规定,特种设备生产、经营、使用单位()被查封、扣押的特种设备或者其主要部件的,责令改正,处五万元以上二十万元以下罚款;情节严重的,吊销生产许可证,注销特种设备使用登记证书。(A..

    2022年9月6日
    8
  • nginx的负载均衡算法_redis负载均衡

    nginx的负载均衡算法_redis负载均衡1、轮询     就是按照时间顺序分配下一个请求的服务器。2、权值轮询     给每一个服务器加上权值,权值和分配的请求成正比,比较适应于服务器配置不均的情况。3、ip哈希     根据ip的哈希值分配,这样每个ip每次访问的服务器都相同,这样session的处理会容易些。4、响应时间动态分配   根据请求的响应时间来分配,时间越短,说明处理能力较强,这样会…

    2022年10月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号