关系型数据库(h2)

概述

纯Java实现开源关系数据库,支持嵌入式、服务器和混合三种运行模式,具备轻量化(约2MB JAR文件)和跨平台特性。该数据库采用多版本并发控制(MVCC)机制优化并发访问性能,支持SQL标准的大部分功能,并兼容MySQL语法。

maven依赖

xml 复制代码
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.210</version>
</dependency>

示例

  • 内存模式
java 复制代码
    @Test
    void contextLoads() throws ClassNotFoundException, SQLException {
        Class.forName("org.h2.Driver");
        Connection connection = DriverManager.getConnection("jdbc:h2:mem:test");
        Statement statement = connection.createStatement();
        //创建表
        statement.execute("create table tb_demo(id integer not null, name TEXT);");
        //插入数据
        statement.execute("insert into tb_demo(id,name) values (1,'bob');");
        statement.execute("insert into tb_demo(id,name) values (2,'pop');");
        //查询数据
        ResultSet resultSet = statement.executeQuery("select * from tb_demo");
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id: " + id + "   name: " + name);
        }
    }
  • 文件模式
java 复制代码
    @Test
    void contextLoads1() throws ClassNotFoundException, SQLException {
        Class.forName("org.h2.Driver");
        //文件模式,会将数据库文件存储在指定位置。配置数据库文件生成会自动加 .mv.db 后缀名
        Connection connection = DriverManager.getConnection("jdbc:h2:file:E:\\db\\h2");
        Statement statement = connection.createStatement();
        //创建表
        statement.execute("create table tb_demo(id integer not null, name TEXT);");
        //插入数据
        statement.execute("insert into tb_demo(id,name) values (1,'bob');");
        statement.execute("insert into tb_demo(id,name) values (2,'pop');");
        //查询数据
        ResultSet resultSet = statement.executeQuery("select * from tb_demo");
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id: " + id + "   name: " + name);
        }
    }

可参考文档

相关推荐
兜有米啦10 分钟前
数据库第二次作业
数据库
nVisual1 小时前
机柜PDU安装位置与空间建模方案
大数据·网络·数据库·信息可视化·数据中心基础设施管理
weixin_6681 小时前
Cursor-superpowers插件用法
数据库·人工智能
NWU_白杨1 小时前
三种常用的数据存储技术
数据库·redis·mysql·sqlite
吃饱了得干活1 小时前
亿级订单表分库分表设计,从0到1全流程
java·数据库·面试
蓝创工坊Blue Foundry1 小时前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
麦聪聊数据2 小时前
企业数据市场建设(三):API 化服务封装,让数据开箱即用、避免重复开发
数据库
脱胎换骨-军哥2 小时前
C++数据库存储引擎内核开发:B+树索引与MVCC并发控制的完整实现
数据库·c++·b树
麦聪聊数据2 小时前
企业数据市场建设(四):流程闭环与价值运营,让数据市场真正转起来
运维·数据库
正儿八经的少年2 小时前
redis 的大 key 和热 key 详解
数据库·redis·缓存