关系型数据库(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);
        }
    }

可参考文档

相关推荐
Leon-Ning Liu5 分钟前
Oracle 26ai新特性:Lock-Free Reservations(无锁预留)
数据库·oracle
xiaopai9456 分钟前
WPS能否替代工程项目管理系统
大数据·数据库·项目管理系统·建米软件
数据库小学妹17 分钟前
空间数据库查询慢怎么排查?索引失效、表膨胀、SQL优化实战(附排查命令)
数据库·性能优化·信创·故障排查·索引调优·空间数据库
Cloud云卷云舒31 分钟前
从墨天轮排名中,分析近期增速快、中长期具备高潜力国产数据库
数据库·haishandb·工业云
lsylalalala36 分钟前
mysql-索引1
数据库·mysql
叶 落1 小时前
Ubuntu24 安装 PostgreSQL
数据库·postgresql·安装教程
HAYDENR1 小时前
依赖数据迁移工具做增量同步有哪些易错点?调整数据迁移工具策略怎么保证断点续传可靠?
java·大数据·数据库
邀星月为媒1 小时前
高阶加餐 08|Prompt 故障定位与可观测性:模型突然变差时,别再靠“重新写一遍 Prompt”解决
服务器·数据库·prompt
2501_937860943 小时前
MySQL表的操作:创建、查看、修改、删除完整实战
android·数据库·mysql
奇特認7 小时前
mysql 集群技术 3.高可用之 MHA
数据库·mysql