当前位置: 首页 > 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.文件系统抽象

相关文章:

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 …...

nginx系列--(三)--http

本文主要介绍http模块accept read流程&#xff0c;&#xff01;&#xff01;&#xff01;请求对应的响应直接在read流程里就会返回给用户&#xff0c;而不需要通过write事件&#xff0c;和redis一样&#xff0c;基本都不通过eventloop write事件来发送响应给客户端&#xff0c;…...

通过Wireshark抓包分析,体验HTTP请求的一次完整交互过程

目录 一、关于Wireshark 1.1、 什么是Wireshark 1.2、下载及安装 二、HTTP介绍 2.1、HTTP请求过程介绍 2.2 、TCP协议基础知识 2.2.1、概念介绍 2.2.2、TCP协议的工作原理 2.2.3、三次握手建立连接 2.3.4、四次挥手断开连接 2.3、Wireshark抓包分析过程 2.3.1、三次握…...

Requestium:Python中的Web自动化新贵

文章目录 Requestium&#xff1a;Python中的Web自动化新贵背景&#xff1a;为何选择Requestium&#xff1f;Requestium是什么&#xff1f;如何安装Requestium&#xff1f;简单的库函数使用方法场景应用常见Bug及解决方案总结 Requestium&#xff1a;Python中的Web自动化新贵 背…...

2024版红娘金媒10.3婚恋相亲系统源码小程序(亲测)

1. 红娘服务 红娘服务模块是该系统的一大特色。专业红娘会通过分析用户的个人资料和偏好&#xff0c; 为用户提供精准的配对建议和个性化服务。用户可以预约红娘服务&#xff0c;通过红娘的介入&#xff0c;提升配对成功率。 2. 相亲活动 相亲活动模块用于组织和管理线下或线…...

k8s-实战——ES集群部署

文章目录 yaml文件es-pvc.yamles-svc.yamles-cluster-sts.yaml创建elasticsearch集群yaml文件 es-pvc.yaml 通过nfs服务进行新增pv并通过labels关联pvc前置准备需要提前准备pv的服务器以及挂在路径--- apiVersion: v1 kind: PersistentVolume metadata:name: nfs-es-pv-data-...

无人机的就业前景怎么样?

无人机的就业前景在当前及未来一段时间内都非常广阔。随着低空经济的蓬勃发展&#xff0c;无人机在农业、公安、测绘、交通、应急救援、影视拍摄等多个领域得到了广泛应用&#xff0c;对无人机操控员和相关专业人才的需求也随之急剧增加。 一、无人机操控员的就业前景 1. 高需…...

【学习】软件测试中V模型、W模型、螺旋模型三者介绍

在软件工程的星辰大海之中&#xff0c;存在着三种独特的航路图&#xff1a;V模型、W模型以及螺旋模型。它们分别以各自的方式描绘了软件开发与测试的不同旅程。 首先映入眼帘的是V模型——一个以垂直线条贯穿始终的简洁图形。这个模型如同一座倒立的“V”字形山峰&#xff0c;…...

Kafka存储机制大揭秘:从日志结构到清理策略的全面解析

文章目录 一、前言二、日志存储结构1.日志文件结构2.topic3.partition4.segment索引文件5.message结构6.message查找过程 三、存储策略1.顺序写2.页缓存3.零拷贝4.缓存机制 四、日志格式演变1.V0 版本2.V1 版本3.V0/V1消息集合4.V2 版本消息格式5.V2版本消息集合 五、偏移量维护…...

显卡服务器和普通服务器之间的区别有哪些?

显卡服务器也被称之为GPU服务器&#xff0c;显卡服务器与普通的服务器之间有着很明显的区别&#xff0c;下面就让我们共同来了解一下吧&#xff01; 普通服务器的主要处理器通常都是配备的中央处理器&#xff0c;可以用于执行大部分通用计算任务和操作系统的管理&#xff1b;而…...

国产科技里程碑:自主算力走向世界,“表格编程”横空出世

近日&#xff0c;中国高科技领域迎来里程碑式的进展。 据安徽省量子计算工程研究中心官方消息&#xff0c;本源量子计算科技&#xff08;合肥&#xff09;股份有限公司&#xff08;简称“本源量子”&#xff09;成功向海外销售了其第三代自主超导量子计算机“本源悟空”的机时。…...

人工智能如何改变未来生活:从医疗到日常的全面升级

人工智能如何改变未来生活&#xff1a;从医疗到日常的全面升级 随着人工智能&#xff08;AI&#xff09;技术的进步&#xff0c;我们正逐渐看到它为各行各业带来的巨大变革。从医疗、企业到日常生活&#xff0c;AI通过简化流程、提高效率&#xff0c;甚至改善生活质量&#xf…...

第112届全国糖酒会(3月成都)正式官宣!

作为食品饮料行业内备受瞩目的年度盛事&#xff0c;全国糖酒商品交易会&#xff08;简称“糖酒会”&#xff09;一直是各大厂商与经销商展现企业风采、寻觅合作伙伴及签署订单的关键舞台。2024年10月31日&#xff0c;第111届全国糖酒商品交易会&#xff08;秋糖&#xff09;在深…...

NFT Insider #154:The Sandbox Alpha 4 第四周开启,NBA Topshot NFT 销量激增至新高

市场数据 加密艺术及收藏品新闻 NBA 赛季开幕推动 Topshot NFT 销量激增至新高 随着波士顿凯尔特人队和纽约尼克斯队在 10 月 22 日开启 2024-2025 NBA 赛季的序幕&#xff0c;NBA Topshot 的 NFT 销售量达到了自上赛季季后赛以来的最高水平。截止到 10 月 27 日的这一周&…...

【Canal 中间件】Canal 实现 MySQL 增量数据的异步缓存更新

文章目录 一、安装 MySQL1.1 启动 mysql 服务器1.2 开启 Binlog 写入功能1.2.1创建 binlog 配置文件1.2.2 修改配置文件权限1.2.3 挂载配置文件1.2.4 检测 binlog 配置是否成功 1.3 创建账户并授权 二、安装 RocketMQ2.1 创建容器共享网络2.2 启动 NameServer2.3 启动 Broker2.…...

独立开发的个人品牌打造:个人IP与独立开发的结合

引言 个人品牌程序员也需要打造。在当今的创意经济中&#xff0c;个人IP与独立开发的结合成为了一种趋势&#xff0c;为个体带来了前所未有的机会和可能性。本文将探讨如何通过打造个人IP来增强独立开发的影响力&#xff0c;并探索这种结合为个人带来的潜在价值。 个人IP的重…...

每天一题:洛谷P2002 消息扩散

题目背景 本场比赛第一题&#xff0c;给个简单的吧&#xff0c;这 100 分先拿着。 题目描述 有 n 个城市&#xff0c;中间有单向道路连接&#xff0c;消息会沿着道路扩散&#xff0c;现在给出 n 个城市及其之间的道路&#xff0c;问至少需要在几个城市发布消息才能让这所有 …...

【深度学习】用LSTM写诗,生成式的方式写诗系列之一

Epoch 4: 100%|███████████████████████████████████████████████████████████| 63/63 [00:07<00:00, 8.85batch/s, acc18.5, loss5.8] [5] loss: 5.828, accuracy: 18.389 , lr:0.001000 Epoch 5: 100%|███…...

HomeAssistant自定义组件学习-【二】

#要说的话# 前面把中盛科技的控制器组件写完了。稍稍熟悉了一些HA&#xff0c;现在准备写窗帘控制组件&#xff0c;构想的东西会比较多&#xff0c;估计有些难度&#xff0c;过程会比较长&#xff0c;边写边记录吧&#xff01; #设备和场景环境# 使用的是Novo的电机&#xf…...

如何看待AI技术的应用前景?

文章目录 如何看待AI技术的应用前景引言AI技术的现状1. AI的定义与分类2. 当前AI技术的应用领域 AI技术的应用前景1. 经济效益2. 社会影响3. 技术进步 AI技术应用面临的挑战1. 数据隐私与安全2. 可解释性与信任3. 技能短缺与就业影响 AI技术的未来发展方向1. 人工智能的伦理与法…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...