H2:修订间差异
跳到导航
跳到搜索
无编辑摘要 |
(→例子) |
||
第29行: | 第29行: | ||
==== 例子 ==== | ==== 例子 ==== | ||
create table test ( | <small><nowiki>create table test ( | ||
ky int primary key, | |||
val varchar(20), | |||
ct datetime comment 'create date' | |||
); | |||
-- truncate table test; | |||
insert into test values(0, 'Hello, World!', '2024-10-10 12:59:59'); | |||
select * from test;</nowiki></small> | |||
==== 函数 ==== | ==== 函数 ==== |
2024年10月11日 (五) 09:43的版本
H2 数据库源于 Hypersonic SQL 项目,是一款以 Java 编写的轻量级关系型数据库。由于其小巧、灵活并且易于集成,H2 经常被用作开发和测试环境中的便利数据库解决方案。除此之外,H2也适合作为生产环境中的嵌入式数据库、轻量级应用的内存数据库、大型应用的本地缓存数据库。它不仅支持标准的 SQL,还兼容 JDBC API,既可以以嵌入式的形式运行,也可以作为服务器模式运行。
Welcome to H2, the Java SQL database. The main features of H2 are:
- Very fast, open source, JDBC API
- Embedded and server modes; in-memory databases
- Browser based Console application
- Small footprint: around 2.5 MB jar file size
安装
从官网下载:https://h2database.com/
配置
修改 bin/h2.sh
java -cp "$dir/h2-2.2.224.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Server -tcpAllowOthers -webAllowOthers -webPort 8082 "$@"
- webAllowOthers, 允许 web 连接
- tcpAllowOthers, 允许 tcp 连接
- webPort, web 端口,默认 8082
运行
nohup sh h2.sh &
- TCP server running at tcp://192.168.0.158:9092 (others can connect)
- PG server running at pg://192.168.0.158:5435 (only local connections)
- Web Console server running at http://192.168.0.158:8082 (others can connect)
- (ignore) Failed to start a browser to open the URL http://192.168.0.158:8082: Browser detection failed, and java property 'h2.browser' and environment variable BROWSER are not set to a browser executable.
建库
java -cp /opt/h2/bin/h2-2.2.224.jar org.h2.tools.Shell
例子
create table test ( ky int primary key, val varchar(20), ct datetime comment 'create date' ); -- truncate table test; insert into test values(0, 'Hello, World!', '2024-10-10 12:59:59'); select * from test;
函数
包含部分 MySQL 函数
substring('abcd', 1, 2) now(), curdate(), ascii('abc'), rand(), floor(3.5), ceil(3.5) concat('abc', 'd'), rtrim(',abc,', ',')
关闭
默认情况下当最后一个连接关闭后,数据库会自动关闭。延迟关闭方法:
- 执行 SQL statment,'SET DB_CLOSE_DELAY <seconds>'
- 在连接的 URL 中设置,如 'jdbc:h2:~/test;DB_CLOSE_DELAY=10',-1 禁用无连接自动关闭功能
- 在连接的 URL 中设置,如 'jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE',表示禁用 java VM 退出自动关闭功能
如果 DB_CLOSE_DELAY 设置为 -1,但如果 JAVA 的 VM 正常退出的话,这种情况下 H2 可以使用 'DB_CLOSE_ON_EXIT=FALSE' 来防止 vm 的 shutdown hook 自动关闭数据库。