浅尝H2数据库<一>

面试篇——Qt开发库,Linux标准库,Windows API浅尝 Qt 是一个跨平台的 C++ 应用程序开发框架,广泛用于开发图形用户界面(GUI)应用程序,同时也支持非图形的开发工作,如网络、数据库、线程等功能。 阅读详情

本文主要介绍采用内存模式访问H2数据库。


推荐H2的理由:

1. H2对Oracle语法的支持(这方面H2完爆Derby);

2. 采用内存模式访问数据库时,数据库在内存中创建,运行结束后无残留,

非常适合持久层的单元测试;

开发环境:JDK,Eclipse,  Maven

开发实践:

1. 在eclipse中创建一个maven工程;

2. 在pom.xml中添加对h2的依赖,如下:

<dependencies>

<dependency>

<groupId>com.h2database</groupId>

<artifactId>h2</artifactId>

<version>1.4.192</version>

</dependency>

</dependencies>

3. 编写数据访问类(DAO), 如下:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.Statement;



public class UserMapper {

public static void main(String[] args) throws Exception {

//初始H2的数据库驱动

Class.forName("org.h2.Driver");

//获取数据库连接

//jdbc:h2:mem:test, mem表示采用内存模式访问数据库

Connection conn = DriverManager.getConnection("jdbc:h2:mem:test");

//创建表并插入初始数据

String sql = "drop table if exists firsttable;"

+ "create table firsttable (id int primary key, name varchar(255));"

+ "insert into firsttable values (1, 'Hello');"

+ "insert into firsttable values (2, 'World');";

//查询数据

Statement stmt = conn.createStatement();

stmt.execute(sql);

PreparedStatement ppstmt = conn.prepareStatement("select * from firsttable");

ResultSet r = ppstmt.executeQuery();

while(r.next())

System.out.println(r.getInt("id") +", "+ r.getString("name"));

//关闭数据库连接

conn.close();

}

}

注意事项:

当使用jdbc:h2:mem:访问数据库时, 执行序列的sql "select seq_user.nextval from dual"时会报一个错误:sql "identifier" error;

将url改成jdbc:h2:mem:数据库名后,问题解决

常见问题

1. 数据库文件存在哪里 (以下内容是摘自H2 Documentation)

当使用数据库链接 jdbc:h2:~test时,数据库文件会存储在系统用户所在的文件夹。对应windows系统,对应的路径为

C:\Documents and Settings\<userName> or C:\Users\<userName>。如果路径为jdbc:h2:./test, 数据库文件会存放在

应用启动的目录下。如果通过开始目录里面生成的H2应用打开数据库,数据库文件会存储在 <H2安装路径>/bin。

数据库文件路径可以根据需要自定义。可以采用相对/绝对路径。比如jdbc:h2:file:./data/sample, 数据库文件sample.mv.db存储

在当前应用所在目录下面的/data文件夹下。如果数据库文件不存在,将会自动创建。也可以采用完全限定的路径, 如:
jdbc:h2:file:C:/data/test






开源分析数据库ClickHouse和开源esProc SPL的性能对比_clickhouse 计算 q1,q2, q3 开源esProc SPL也是以高性能作为宣传点,那么我们再来比较一下。仍然是跑TPC-H来看 :Q2、Q3、Q7这些较复杂的运算,SPL比CH和ORA跑的都快。CH跑不出结果的Q8、Q9,SPL分别跑了37秒和68秒,也比ORA快。原因在于SPL可以采用更优的算法,其计算复杂度低于被ORA优化过的SQL,更远低于CH执行的SQL,再加上列存,最终是用Java开发的SPL跑赢了C++实现的CH和ORA。大概可以得到结论,esProc SPL无论做简单计算,还是复杂计算性能都非常好。 阅读详情

相关推荐

浅尝浏览器桌面通知 Notification

参考: https://developer.mozilla.org/zh-CN/docs/Web/API/notification https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification 一、前言 最近业务开发中,有一个需求,需要弹出桌面通知弹窗。 这是我从没做过的,所以开贴与大家分享一下,另...

weixin_41990299的博客 346

H2内存数据库的函数

每个数据库为了使用者的查询简便性以及使用效率,都有专门提供一些函数给使用者进行使用,H2也同样如此,虽然没有oracle那么多强大的函数,但是一般需求的使用还是能够满足,下面就简单介绍下都有哪些函数一、函数的分类以及名称1、聚合函数(Aggregate Functions)   AVG BOOL_AND BOOL_OR COUNT GROUP_CONCAT   MAX MIN...

不积跬步 无以至千里 9913

第18届全国大学生智能汽车竞赛四轮车开源讲解【2.5】-- 图像处理实战:从二值化到边缘检测的工程优化

本文深入讲解了第18届全国大学生智能汽车竞赛四轮车开源项目中图像处理的核心实战技术。文章聚焦于二值化与边缘检测两大关键环节,详细对比了大津法与索贝尔算子的工程应用与优化策略,并分享了遮光、偏振片等物理抗干扰技巧,旨在帮助参赛者构建稳定高效的图像预处理流水线,为赛道识别奠定坚实基础。

weixin_29279047的博客 100

SpringBoot:集成H2数据库并持久化,url中mem、file有什么区别?

持久化配置 SpringBoot版本是2.3.12.RELEASE,下面有些配置看SpringBoot版本的,比如spring.datasource.schema是这个版本以下的,spring.sql.init.data是更高版本的./dbfile 是把持久文件生成到程序启动路径下,你也可以自定义其他路径 H2 url的含义 先看以下两个常量,代表url开头与后半段,后半段的类型有mem内存模式、file本地文件模式、tcp|ssl远程模式,含义如下(参考http://www.h2database.com/

Oxye 6433

5G-A无源物联网:深度解析“不插电“智能的底层技术原理

北京移动推出5G-A无源物联网技术,实现电动车标签"零功耗"运行。该技术通过射频能量收集(利用5G-A基站高功率信号转换为电能)和反向散射通信(调制反射信号传输数据)两大核心技术,使设备无需电池即可工作。5G-A相比4G在信号能量密度、通信速率和定位精度等方面显著提升,结合通感一体等创新技术,为无源物联网提供商用基础。该方案已在北京小区试点应用,实现电动车精准定位管理,标签寿命可达5年以上。专家预测,这项技术将大幅降低物联网部署成本,推动"万物智联"时代的到来。

通信行业老兵、物联网从业者,做一个有趣的普通人。 2014

Qt跨平台CAN通信实战:Vector、PCAN与周立功设备统一接口设计

本文针对Qt开发中常见的多品牌CAN设备兼容难题,提出了一套统一的跨平台CAN通信接口设计方案。通过抽象层封装,实现了对Vector、PCAN和周立功设备的统一操作,上层业务代码无需修改即可在不同硬件间切换,有效解决了驱动API差异、环境配置复杂和维护成本高等痛点,显著提升了代码复用率和开发效率。

weixin_29161785的博客 332

H2 数据库入门和基本使用

1、下载安装包 H2官网:http://h2database.com/html/main.html 2、安装H2数据库 选择安装目录 ->点击下一步 ->安装 ->完成

星辰大数据的博客 1万+

【军标】《军用软件计价规范(试行)》和GJB 10162-2021《军用软件计价功能项识别方法》-费用标准解读系列37

2021年2月1日实施的《军用软件计价规范(试行)》(替代了2019年版本)以及2021年3月1日实施的《军用软件计价功能项识别方法》(GJB 10162-2021),是我们平时在军用软件造价咨询中进行软件规模度量、计价和审价的主要依据。《军用软件计价规范(试行)》(4号文)的附件1为《军用软件功能规模度量方法》,即4号文本身包含对软件规模测试的方法(功能点方法主要参考NESMA等国际标准)、规模度量过程、功能点计数和计算规则等相关说明。(四)软件研发费用=软件研发工作量x软件研发人月综合费率。

xiaosenyouli的博客 6125

H2数据库入门

一、H2简介   1、H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。   H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。   它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。   H2的第三个用处是作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型......

Alex的博客 6269

手把手配置:用Synopsys VDK为英飞凌TC4x系列MCU做虚拟原型开发

本文详细介绍了如何使用Synopsys VDK为英飞凌TC4x系列MCU进行虚拟原型开发,涵盖开发环境搭建、关键外设虚拟化配置、AUTOSAR栈集成及虚拟调试与性能调优全流程。通过虚拟原型技术,开发者可提前6-12个月启动软件开发,显著提升汽车电子项目的开发效率。

weixin_30606461的博客 292

推理引擎终极对决:TensorRT vs ONNX Runtime,YOLOv8速度差30%的核心原因与实操指南

若你使用NVIDIA GPU,且追求极致速度和低延迟,TensorRT是唯一选择,尤其是边缘设备和实时场景;若你需要跨硬件部署、快速验证原型,或预算有限(无需NVIDIA GPU),ONNX Runtime是性价比之王;对于YOLOv8这类检测模型,TensorRT的FP16/INT8量化是“免费的速度提升”,建议优先采用。最后提醒:推理引擎的优化是“细节决定成败”——同样的引擎,不同的预处理方式、显存配置、批大小,都会导致10%-20%的性能差异。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1027

H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档)

由于国内H2嵌入式数据库并不是主流数据库,因此相关生态资源文件都比较少,并且很多都是断断续续的,针对此类问题笔者特意去官网整理相关配置文件及说明并进行梳理,方便大家开发时使用。 H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档)

轨迹的博客 1万+

工业质检封神!YOLOv8实战金属表面缺陷检测,自建数据集mAP突破95%

本文详细介绍了基于YOLOv8的金属表面缺陷检测实战方案。针对工业质检中的光照不均、纹理复杂、小样本等挑战,作者构建了12000张图像的数据集,提出针对性数据增强策略和两阶段训练方法。通过优化损失函数、调整超参数等技术手段,最终在测试集上达到95.1%的mAP@0.5,检测速度32FPS。相比传统方法,该方案在精度和鲁棒性上均有显著提升,为工业视觉质检提供了可复现的落地解决方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 428

Kotlin应用——使用kt进行web开发 &amp; 使用h2database进行初始化数据库 &amp; mybatis-plus使用_kotlin web 选择文件

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。(img-tD4P1YGR-1713141615013)]h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库。3.使用 lateinit 关键字,变量在定义时不需要初始化;2.使用h2database进行初始化数据库;

2401_84254057的博客 1107

Cadence 批量一次性修改title 页码标题

本文介绍如何在Cadence软件中对DSN文件进行标题栏的批量编辑操作,包括选择编辑对象、使用快捷键打开属性面板以及如何修改标题、页码等关键信息。

tianpu2320959696的博客 977

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

论文浅尝 | DB4Trans:数据库内置知识图谱嵌入模型训练引擎

笔记整理:柳鹏凯,天津大学硕士发表期刊:计算机学报 第45卷Vol.45, 第9期 No.9链接:http://cjc.ict.ac.cn/online/onlinepaper/lpk-202297212908.pdf动机知识图谱嵌入技术主要将知识图谱中的实体和关系嵌入到连续的向量空间中,有助于完成诸如链接预测等下游任务。随着基于知识的人工智能的日益普及和应用,知识图谱的数据规模正在急剧增加。然而...

开放知识图谱 1236

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Kotlin应用——使用kt进行web开发 &amp; 使用h2database进行初始化数据库 &amp; mybatis-plus使用_kotlin web 选择文件(1)

到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。(img-IMEQSgXo-1713141590173)]h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库。3.使用 lateinit 关键字,变量在定义时不需要初始化;2.使用h2database进行初始化数据库;1.使用kt进行web开发;

2401_84254057的博客 837

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

浅尝 express + ORM框架 prisma 的结合

express 中 使用 ORM 框架 prisma 对 MySql 数据库的增删改查

wsfufua的博客 1547

浅尝CloudCompare二次开发

简单尝试CloudCompare的二次开发。

weixin_44701802的博客 2204

database-sync适配openGauss使用指导书(1)

(2)支持增量或全量同步数据(3)支持指定字段同步,只同步关心的字段database-sync代码托管在github上。

2401_84520093的博客 575

WEB安全-金手铐系列-HTTP 2高级请求夹带攻击--Advanced request smuggling_http 2攻击

r\n0\r\n\r\n\r\n\r\nFoo: barfoobar\r\n\r\ncomment=x=1comment=X-Internal-Header: secretContent-Length: 3 (此处泄露内部请求头)x=1Host: 自定义任意x=1x=10SMUGGLED (这是遗留的字段,会与第二个请求混在一起,形成无效访问,造成404响应)0Secure;

afagagagaa的博客 884

DBA技术栈MongoDB 索引创建和查询优化_db(2)

为了做好运维面试路上的助攻手,特整理了上百道,让你面试不慌心不跳,高薪offer怀里抱!这次整理的面试题,本份面试集锦涵盖了1、什么是运维?2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?3、现在给你三百台服务器,你怎么对他们进行管理?4、简述raid0 raid1raid5二种工作模式的工作原理及特点5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

m0_61331407的博客 718

最新DolphinScheduler2,面经解析

【代码】最新DolphinScheduler2,面经解析。

2401_84186026的博客 1301

MySQL数据库以及相关知识点总结大全_6,软件测试开发指南

select one_table.fiedl1,two_table.field1 from one_table right join on two_table onetable.field1 = twotable.field1:显示one_table、two_table中相同(符合one_table.field1=two_table.field1)的记录,同时会显示右表中(right后的two_table)与条件(one_table=two_table)不符的记录。):向tablename插入多条记录。

m0_54903333的博客 721

Qt多窗体之间的数据库操作

一年多之前就接触了Qt,一直也对它比较情有独钟,但是一直都是浅尝辄止,断断续续也没学到多少东西;前两天写一个带有登陆界面的客户端程序,由于初学,在数据库的连接和使用上遇到了问题,查阅了些资料,详情如下: 问题:解决Qt多窗体间连接查询数据库(SQLite) 解决方法1:采用数据库连接并选定数据库的方法 1)在main.cpp中定义函数: #include #include #i

schades的专栏 4453

Zabbix【部署 01】Zabbix企业级分布式监控系统部署配置使用实例(在线安装及问题处理)程序安装+数据库初始(2)

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。同时每个成长路线对应的板块都有配套的视频提供:因篇幅有限,仅展示部分资料网络安全面试题绿盟护网行动还有大家最喜欢的黑客技术,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

2401_84254530的博客 923
上一篇: 浅尝derby(1)
下一篇: Logback实践
walker-undef
博客等级 码龄12年 93粉丝 82原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值