当前位置: 首页 > news >正文

H2 Database IDEA 源码 DEBUG 环境搭建

H2 Database IDEA 源码 DEBUG 环境搭建

基于最新的 version-2.3.230 拉取分支。

git remote add h2 https://github.com/h2database/h2database.git 
git fetch h2
git checkout -b version-2.3.230 version-2.3.230

使用

# 启动
java -jar h2*.jar# H2 shell 方式使用
java -cp h2-*.jar org.h2.tools.Shell

h2 shell

启动类 org.h2.tools.Shell

# 配置启动参数
-url "jdbc:h2:~/test" -user "sa" -password "" 

测试 case

create table + insert

Welcome to H2 Shell 2.3.230 (2024-07-15)
Exit with Ctrl+C
[Enter]   jdbc:h2:~/test
URL       jdbc:h2:~/test
[Enter]   org.h2.Driver
Driver    org.h2.Driver
[Enter]   
User      sa
Password  Password  ><
Type the same password again to confirm database creation.
Password><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 exitsql> show tables;
TABLE_NAME | TABLE_SCHEMA
(0 rows, 197 ms)sql> create table test(id int);
(Update count: 0, 5 ms)sql> show tables;
TABLE_NAME | TABLE_SCHEMA
TEST       | PUBLIC
(1 row, 4 ms)sql> insert into test values(1);
(Update count: 1, 4 ms)sql> select * from test;
ID
1
(1 row, 1 ms)sql> 

事务操作

sql> select * from test;
ID
1
1
(2 rows, 2 ms)sql> begin;
(Update count: 0, 1 ms)sql> delete from test;
(Update count: 2, 1 ms)sql> rollback;
(Update count: 0, 2 ms)sql> select * from test;
ID
1
1
(2 rows, 2 ms)

H2架构

根据官方文档介绍,从上到下,各层如下所示:

JDBC driver.JDBC 驱动程序
Connection/session management.连接/会话管理
SQL Parser.SQL 解析器
Command execution and planning.命令执行和计划
Table/Index/Constraints.表/索引/约束
Undo log, redo log, and transactions layer.undo log、redo log 和 事务层
B-tree engine and page-based storage allocation.B 树引擎 & 基于页的存储分配
Filesystem abstraction.文件系统抽象
http://www.lryc.cn/news/476338.html

相关文章:

  • nginx系列--(三)--http
  • 通过Wireshark抓包分析,体验HTTP请求的一次完整交互过程
  • Requestium:Python中的Web自动化新贵
  • 2024版红娘金媒10.3婚恋相亲系统源码小程序(亲测)
  • k8s-实战——ES集群部署
  • 无人机的就业前景怎么样?
  • 【学习】软件测试中V模型、W模型、螺旋模型三者介绍
  • Kafka存储机制大揭秘:从日志结构到清理策略的全面解析
  • 显卡服务器和普通服务器之间的区别有哪些?
  • 国产科技里程碑:自主算力走向世界,“表格编程”横空出世
  • 人工智能如何改变未来生活:从医疗到日常的全面升级
  • 第112届全国糖酒会(3月成都)正式官宣!
  • NFT Insider #154:The Sandbox Alpha 4 第四周开启,NBA Topshot NFT 销量激增至新高
  • 【Canal 中间件】Canal 实现 MySQL 增量数据的异步缓存更新
  • 独立开发的个人品牌打造:个人IP与独立开发的结合
  • 每天一题:洛谷P2002 消息扩散
  • 【深度学习】用LSTM写诗,生成式的方式写诗系列之一
  • HomeAssistant自定义组件学习-【二】
  • 如何看待AI技术的应用前景?
  • Unity中的屏幕坐标系
  • 标题点击可跳转网页
  • 易语言模拟真人动态生成鼠标滑动路径
  • Linux:生态与软件安装
  • R 语言与其他编程语言的区别
  • RC低通滤波器Bode图分析(传递函数零极点)
  • 基于深度学习的网络入侵检测
  • 《构建一个具备从后端数据库获取数据并再前端显示的内容页面:前后端实现解析》
  • Rust 力扣 - 59. 螺旋矩阵 II
  • 2.4w字 —TS入门教程
  • java: 未结束的字符文字 报错及解决:将编码全部改为UTF-8或者GBK