1.官网:

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

file:///E:/Develop/H2/docs/html/tutorial.html#web_applications

http://www.h2database.com/javadoc/index.html

file:///E:/Develop/H2/docs/h2.pdf

http://www.h2database.com/javadoc/index.html

2.JAVA中连接H2数据库的URL地址、JDBC驱动类:

(1)远程:jdbc:h2:tcp://localhost/~/test  或  jdbc:h2:tcp://192.168.6.6/E:\Develop\H2\db\test

(2)本地:jdbc:h2:~/test 或 jdbc:h2:E:\Develop\H2\db\test

JDBC Driver: org.h2.Driver

3.Starting the Server Tool from Command Line(启动服务端):

java -cp h2*.jar org.h2.tools.Server #启动服务端,使用默认参数
java -cp h2*.jar org.h2.tools.Server -?  #查看可用参数

也可以执行该命令启动:  java -jar h2-1.4.200.jar     #和上面一样,后面也可以带各种参数

4. 命令行创建数据库或登录(连接)已有的数据库:(windows的cmd窗口和linux的shell窗口都一样)

java -cp h2-1.4.200.jar org.h2.tools.Shell

[root@cdh04 h2]# java -cp h2-1.4.200.jar org.h2.tools.Shell

Welcome to H2 Shell 1.4.200 (2019-10-14)
Exit with Ctrl+C
[Enter] jdbc:h2:~/test
URL jdbc:h2:/usr/h2/test   #此处是本地数据库,还可以连接远程数据库,如: 
[Enter] org.h2.Driver
Driver   #此处没有填写驱动,默认就是系统提供的模板 “org.h2.Driver”
[Enter]
User root
Password
roType the same password again to confirm database creation.
Password
Connected
Commands are case insensitive; SQL statements end with ';'
help or ? Display this help
list Toggle result list / stack trace mode
maxwidth Set maximum column width (default is 100)
autocommit Enable or disable autocommit
history Show the last 20 statements
quit or exit Close the connection and exit

sql>  #到这里,说明已经连接上了,可以开始操作数据库了

注意:当连接远程数据库时,服务器端的启动数据库的命令行要加上参数  -tcpAllowOthers 或 -webAllowOthers 或 -pgAllowOthers,如下:

E:\Develop\H2\bin>java -jar h2-1.4.200.jar -tcpAllowOthers

Web Console server running at http://192.168.8.5:8082 (others can connect)
TCP server running at tcp://192.168.8.5:9092 (others can connect)
PG server running at pg://192.168.8.5:5435 (only local connections)

E:\Develop\H2\bin>java -jar h2-1.4.200.jar -webAllowOthers  #只有添加这个参数,才能使用浏览器客户端访问数据库,其他都只能使用java代码或命令行的方式
Web Console server running at http://192.168.8.5:8082 (others can connect)
TCP server running at tcp://192.168.8.5:9092 (only local connections)
PG server running at pg://192.168.8.5:5435 (only local connections)

注意:当使用浏览器的客户端访问时,网址为: http://192.168.6.9:8082/  (假设服务器IP为192.168.6.9),连接的参数如下截图所示:

注意2:若想让浏览器也允许远程连接,也可修改...\H2\src\tools\WEB-INF下的web.xml文件:

<servlet>
<servlet-name>H2Console</servlet-name>
<servlet-class>org.h2.server.web.WebServlet</servlet-class>
<init-param>
<param-name>webAllowOthers</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>trace</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

5.样例SQL脚本

如果表存在删除它
创建一个新表
  用ID和NAME列
增加新的一行
增加另一行
查询表
改变一行数据
删除一行
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');
SELECT * FROM TEST ORDER BY ID;
UPDATE TEST SET NAME='Hi' WHERE ID=1;
DELETE FROM TEST WHERE ID=2;
帮助 HELP ... 

6.增加数据库驱动(有空再试):

可以通过添加系统环境变量H2DRIVERS 或者 CLASSPATH 来增加数据库驱动注册。例如(Windows):要增加数据库驱动C:/Programs/hsqldb/lib/hsqldb.jar,可以增加系统环境变量H2DRIVERS并设置到C:/Programs/hsqldb/lib/hsqldb.jar。

7.CSV (Comma Separated Values) Support(有空再看)

8. 小结:启动h2的3个入口(此处是windows环境下):

(1)Console(启动web控制台,通过网页连接到一个数据库,如果目标数据库不存在则创建) :

    E:\Develop\H2\bin>java -jar h2-1.4.200.jar

    等价于命令 java -cp "h2-1.4.200.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Console

    也可直接执行h2.bat,或h2w.bat. (已经配置了环境变量H2DRIVERS=E:\Develop\H2\bin\h2-1.4.200.jar)

  E:\Develop\H2\bin\h2.bat中的内容:

    @java -cp "h2-1.4.200.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Console %*
    @if errorlevel 1 pause

  E:\Develop\H2\bin\h2w.bat中的内容:

    @start javaw -cp "h2-1.4.200.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Console %*
    @if errorlevel 1 pause

(2)Server(启动服务端,感觉和第一个没啥区别,就是少了一个控制台,在这个控制台上有一个按钮,一点就能打开一个用于连接数据库的网页):

    java -cp "h2-1.4.200.jar;%H2DRIVERS%;%CLASSPATH%" h2-1.4.200.jar org.h2.tools.Server

(3)Shell(命令行创建数据库或登录(连接)已有的数据库):

    java -cp "h2-1.4.200.jar;%H2DRIVERS%;%CLASSPATH%" h2-1.4.200.jar org.h2.tools.Shell

CSV (Comma Separated Values) Support

9. 导出CSV文件:

CREATE TABLE TEST(ID INT, NAME VARCHAR);
INSERT INTO TEST VALUES(1, 'Hello'), (2, 'World');
CALL CSVWRITE('test.csv', 'SELECT * FROM TEST');

10.导入CSV文件:

(1)导入users.csv文件内容到已存在的users表:

INSERT INTO USERS 
SELECT * FROM CSVREAD('F:/Develop/MySQL57/Uploads/users.csv');

这种方法不行,有很多问题,尤其是字段类型不同导致无法导入的问题,虽然不报错,但是每次导入记录显示是0条。

(2)导入users.csv文件内容到数据库中还没有的users表:需要创建user表的同时,导入内容:CREATE TABLE TEST AS SELECT * FROM CSVREAD('F:/Develop/MySQL57/Uploads/test.csv');

上面的sql语句未设置表结构,导入结果是创建了一张表,它的字段名为csv文件中第一行的内容,而且字段类型全部是VARCHAR,实际使用完全不对。
如果TEST表已存在,则报错:Table "USERS" already exists
CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255))
AS SELECT * FROM CSVREAD('test.csv'); 实际使用这个。

11. 导出、导入数据库为.sql文件(人类可读)

A、导出(备份):

工具:Script Tool

E:\Develop\H2\bin>java -cp "%H2DRIVERS%" org.h2.tools.Script -url jdbc:h2:~/.halo/db/halo -user root -password root -script test.zip -options compression zip

解释:

(1)H2DRIVERS是预设的环境变量,值为 E:\Develop\H2\bin\h2-1.4.200.jar;

(2) org.h2.tools.Script是h2-1.4.200.jar包中的一个脚本工具类,一个java类;

(3)-script test.zip ,是保存的脚本文件的路径,此处为相对路径,即java类所在路径,应该也可以写绝对路径;

(4) -options compression zip,设置打包为压缩文件,如果没有这个参数,则大包为 .sql文件,直接用记事本打开就能看到sql语句。

也可以用Script命令来备份,其实上面的org.h2.tools.Script工具类,本质上是调用了Script命令。以下是官方文档:

It is also possible to use the SQL command SCRIPT to create the backup of the database. For more information about the options, see the SQL command SCRIPT. The backup can be done remotely, however the file will be created on the server side. The built in FTP server could be used to retrieve the file from the server.

具体以后再完善。

B、导入(恢复):

工具:RunScript Tool

java -cp "%H2DRIVERS%" org.h2.tools.RunScript -url jdbc:h2:~/.halo/db/halo -user root -password root -script test.zip -options compression zip

各个参数的解释同上。

也可以用 RunScript 命令来导入,其实org.h2.tools.RunScript工具类,本质上是调用了 RunScript 命令。

具体以后再完善。

eg. mysql数据导入到h2数据库:

C:\Users\Administrator>mysqldump -h localhost -u root -proot halodb > C:\Users\Administrator\.halo\db\halodb.sql

C:\Users\Administrator>java -cp "%H2DRIVERS%" org.h2.tools.RunScript -url jdbc:h2:~/.halo/db/halo -user root -password root -script ~/.halo/db/halodb.sql

12. 导出、导入数据库为.zip文件(人类不可读)

可以用 Backup 命令。具体以后再完善。

13.

H2知识小结的更多相关文章

  1. HTTPS知识小结

    HTTPS知识小结 背景1:TCP握手 internet上的两台机器A,B要建立起HTTP连接了,在这之前要先建立TCP连接,情景大概是这样子的: A:你好,我跟你建立一个TCP好吗? B:好啊. A ...

  2. Android app开发知识小结

    Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,d ...

  3. C/C++ 位域知识小结

    C/C++ 位域知识小结 几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存 ...

  4. JAVA 变量 数据类型 运算符 知识小结

    ---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...

  5. html5-基本知识小结及补充

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  6. shell 环境变量的知识小结

    环境变量的知识小结:·变量名通常要大写.·变量可以在自身的Shell及子Shell中使用.·常用export来定义环境变量.·执行env默认可以显示所有的环境变量名称及对应的值.·输出时用“$变量名” ...

  7. 180531-Spring中JavaConfig知识小结

    原文链接:Spring中JavaConfig知识小结/ Sring中JavaConfig使用姿势 去掉xml的配置方式,改成用Java来配置,最常见的就是将xml中的 bean定义, scanner包 ...

  8. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  9. PS修图知识小结

    PS修图知识小结   [1]人去除红眼. 1.用红眼工具,框选红眼不分. 2.用椭圆选区工具,选择红眼部分 3..创建调整图层,亮度.对比度.加大对比度. 4.选择红眼部分.创建调整图层,可选颜色,减 ...

随机推荐

  1. 基于PO和单例设计模式用python+selenium进行ui自动化框架设计

    一)框架目录的结构 二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备然后目前的配置文件大都会用yaml,ini,excel,还有.py也 ...

  2. JS高级---总结继承

    总结继承 面向对象特性: 封装, 继承,多态 继承, 类与类之间的关系, 面向对象的语言的继承是为了多态服务的   js不是面向对象的语言, 但是可以模拟面向对象,模拟继承,为了节省内存   继承: ...

  3. OpenCV函数:提取轮廓相关函数使用方法

    opencv中提供findContours()函数来寻找图像中物体的轮廓,并结合drawContours()函数将找到的轮廓绘制出.首先看一下findContours(),opencv中提供了两种定义 ...

  4. 概念理解_L2范数(欧几里得范数)

    L1范数 L1范数是指向量中各个元素绝对值之和 L2范数 L2范数.欧几里得范数一些概念. 首先,明确一点,常用到的几个概念,含义相同. 欧几里得范数(Euclidean norm) ==欧式长度 = ...

  5. JAVA变量声明在循环体内还是循环体外

    (1) for (int i = 0; i < 10000; ++i) { Object obj = new Object(); System.out.println("obj= &q ...

  6. STL之pair类型

    C++ pair 类型 ---心怀虔诚,细细欣赏! 编程实践: Practice:编写程序读入一系列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vecto ...

  7. 软件工程2020第一次作业(by cybersa)

    1 作业描述 作业属于哪个课程 2020春福大软工实践W班 这个作业要求在哪里 寒假作业(1/2) 这个作业的目标 建立博客.掌握markdown语法,学习写博客,回顾,总结,展望自己的学习历程 作业 ...

  8. grep Or And 操作

    grep or 操作符 使用 \| 如果不使用grep命令的任何选项,可以通过使用 '|' 来分割多个pattern,以此实现OR的操作. grep 'pattern1\|pattern2' file ...

  9. 使用Idea构建springmvc框架,出现no bean named 'cacheManager' is defined 错误

    由于IDEA的自动补全功能非常强大,当你配置 <mvc:annotation-driven/> 后编译器会帮你自动补全上面两个配置文件约束.这个时候如果你没注意的就会爆出一个很莫名奇妙的错 ...

  10. 百炼OJ - 1004 - 财务管理

    题目链接:http://bailian.openjudge.cn/practice/1004/ 思路 求和取平均... #include <stdio.h> int main() { fl ...