H2 Database IDEA 源码 DEBUG 环境搭建

ops/2024/10/31 9:44:23/

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.ppmy.cn/ops/129831.html

相关文章

微服务网关

网关是微服务架构里不可或缺的重要组件 微服务架构中&#xff0c;API网关扮演着至关重要的角色。它作为系统内外通信的唯一入口&#xff0c;能够统一管理和控制所有对外提供的微服务接口。例如&#xff0c;当企业希望将内部开发的服务开放给合作伙伴或公众使用时&#xff0c;通…

R语言结构方程模型(SEM)

原文链接&#xff1a;R语言结构方程模型&#xff08;SEM&#xff09;https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247624956&idx4&sn295580a016a86cfee8ee2277c93e32d5&chksmfa8da91bcdfa200da897f1f267492039865bdfe5d75a1c6e6df92ff5005e0eb5cc33a…

Unity Editor 快速移动资源

Editor 快速移动资源 &#x1f354;使用场景&#x1f32d;功能 &#x1f354;使用场景 一般想要移动一个资源到另一个目录的办法是选中资源拖拽过去&#xff0c; 但在一个比较大的项目中你得一直拖啊拖直到找到那个目录 &#x1f92f;。 使用本插件就可以省去拖拽的步骤&#…

浏览器、性能优化、前端安全重难点面试题

浏览器、性能优化、前端安全重难点面试题 汇总了 2023 年各互联网大厂以及中小型创业公司关于 浏览器、性能优化、前端安全、综合应用等相关的最新高频面试题 浏览器 Interview questions 1、从输入 URL 到页面呈现的全过程(腾讯、深信服、招银网络、小米、小红书、字节、…

关于org.springframework.jdbc.BadSqlGrammarException报错的解决方案

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;IDEA 目录 错误描述 解决阶段 AI的回答&#xff1a; 官方文档 错误描述 当我们使用MyBatisX进行相关数据库代码生成的时候&#xff0c;可能会出现以下报错&#xff1a; 一开始我…

InfiMM-WebMath-40B——利用由 24 亿数学文档组成的数据集提高 LLM 的数学性能

1. 前言 论文地址&#xff1a;https://arxiv.org/abs/2409.12568 本文提出了一个新的大规模多模态预训练数据集 InfiMM-WebMath-40B&#xff0c;以提高数学推理能力。该数据集包含 24 亿个科学和数学相关的网络文档、85 亿个图片 URL 和约 400 亿个文本标记。该数据集支持多模…

在线体验Sketch中文版,免费下载即刻上手!

Sketch是一款轻量而高效的矢量设计工具&#xff0c;助力全球设计师创造了诸多惊艳作品。安装Sketch的优势主要体现在其矢量编辑、控件和样式功能上。而下载安装“Sketch中文版”即时设计同样出色&#xff0c;它作为一站式设计平台&#xff0c;功能更全面。即时设计拥有纯中文的…

ADB指定进程名称kill进程

adb shell ps | grep <process_name> | awk {print $2} | xargs adb shell killadb shell ps&#xff1a;列出所有正在运行的进程。grep <process_name>&#xff1a;筛选出包含指定进程名称的行。awk ‘{print $2}’&#xff1a;提取输出中的第二列&#xff08;通常…