小于博客 小于博客
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

小于博客

行者常至,为者常成
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Java学习笔记

  • Docker专区

  • Shell编程

  • 实战教程

  • 内存数据库

    • h2数据库全面解析
      • 1.h2数据库使用
      • 2.h2数据库内存模式
      • 3.h2数据库缺点
      • 4.h2数据库需要安装吗
      • 5.h2数据库可视化
      • 6.h2数据库优缺点
      • 7.h2数据库持久化
      • 8.h2数据库支持最大的数据多大
      • 9.SkyWalking h2数据库
      • 10.小结
    • SpringBoot配置使用H2数据库的简单教程
    • SpringBoot整合SQLite
  • Vue学习笔记

  • 编程世界
  • 内存数据库
小于博客
2024-02-21
目录

h2数据库全面解析

h2数据库全面解析

h2数据库是一个纯Java编写的嵌入式关系型数据库。因为其体积小、可嵌入、功能完整、速度快等优点,越来越多的人开始采用它。

# 1.h2数据库使用

使用h2数据库时,需要先引入相关的jar包,并且通过JDBC连接到数据库,然后执行增删改查等操作。

//引入相关的jar包
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.200</version>
</dependency>

//连接数据库并执行操作
jdbc:h2:~/test
Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");
String sql = "create table user(id int primary key, name varchar(50), age int)";
Statement st = conn.createStatement();
int res = st.executeUpdate(sql);
conn.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 2.h2数据库内存模式

h2数据库支持内存模式,数据不会写入磁盘,只存在内存中。内存模式的优点是查询速度非常快,但是缺点是数据不会持久化,一旦程序退出,所有的数据就会丢失。以下是内存模式的连接方式和操作示例:

//连接内存模式的h2数据库
jdbc:h2:mem:test
        Connection conn = DriverManager.getConnection("jdbc:h2:mem:test", "sa", "");

//创建表并插入数据
        String sql = "create table user(id int primary key, name varchar(50), age int)";
        Statement st = conn.createStatement();
        st.executeUpdate(sql);
        sql = "insert into user values(1, 'Tom', 18)";
        st.executeUpdate(sql);

//查询数据
        sql = "select * from user";
        ResultSet rs = st.executeQuery(sql);
        while (rs.next()) {
        System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getInt("age"));
        }

        conn.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 3.h2数据库缺点

作为一个嵌入式关系型数据库,h2数据库的存储空间有限,不适合存储大量的数据。同时,h2数据库在高并发的情况下会出现死锁等问题,需要进行合理的优化处理。

# 4.h2数据库需要安装吗

h2数据库是一个纯Java编写的嵌入式数据库,不需要安装独立的数据库软件。只需要引入相关的jar包,并且通过JDBC连接到数据库即可。

# 5.h2数据库可视化

h2数据库提供了一个Web控制台,可以方便地通过浏览器进行可视化操作。在连接h2数据库时,只需要指定Web控制台的参数,即可访问控制台。以下是Web控制台的连接和操作示例:

//连接Web控制台
jdbc:h2:~/test;webAllowOthers=true
Connection conn = DriverManager.getConnection("jdbc:h2:~/test;webAllowOthers=true", "sa", "");

//访问Web控制台
http://localhost:8082

//在Web控制台中创建表并插入数据
create table user(id int primary key, name varchar(50), age int);
insert into user values(1, 'Tom', 18);

//在Web控制台中查询数据
select * from user;
1
2
3
4
5
6
7
8
9
10
11
12
13

# 6.h2数据库优缺点

优点:h2数据库体积小、可嵌入、功能完整、速度快、操作简单,开发效率高。

缺点:存储空间有限,不适合存储大量的数据,同时在高并发的情况下会出现死锁等问题。

# 7.h2数据库持久化

h2数据库支持持久化,数据会写入磁盘,保证数据不会丢失。以下是持久化的连接方式和操作示例:

//连接持久化的h2数据库
jdbc:h2:~/test
Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");

//创建表并插入数据
String sql = "create table user(id int primary key, name varchar(50), age int)";
Statement st = conn.createStatement();
st.executeUpdate(sql);
sql = "insert into user values(1, 'Tom', 18)";
st.executeUpdate(sql);

//查询数据
sql = "select * from user";
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
    System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getInt("age"));
}

conn.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 8.h2数据库支持最大的数据多大

h2数据库支持最大的数据大小为1TB。

# 9.SkyWalking h2数据库

SkyWalking是一个分布式跟踪系统,可以监控分布式系统中的调用链等信息。h2数据库可以集成SkyWalking,从而实现分布式的跟踪效果。以下是SkyWalking h2数据库的集成示例:

//引入相关的jar包
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>7.0.0</version>
</dependency>

//在配置文件中设置SkyWalking参数
skywalking.plugin.jdbc.traceSqlParameters=true

//在连接h2数据库时,添加SkyWalking参数
jdbc:h2:~/test;TRACE_EMBEDDED=true
Connection conn = DriverManager.getConnection("jdbc:h2:~/test;TRACE_EMBEDDED=true", "sa", "");
1
2
3
4
5
6
7
8
9
10
11
12
13

# 10.小结

h2数据库是一个非常优秀的嵌入式关系型数据库,具有体积小、可嵌入、功能完整、速度快等优点。同时,h2数据库支持多种模式(内存模式、持久化模式等),支持复杂的SQL语句,并且支持多线程操作、集成SkyWalking等。但是作为一个嵌入式数据库,h2数据库的存储空间有限,不适合存储大量的数据,需要进行合理的优化处理。

← 台电脑怎么互传文件 SpringBoot配置使用H2数据库的简单教程→

最近更新
01
SpringBoot 快速实现 api 加密!
03-21
02
SpringBoot整合SQLite
03-07
03
SpringBoot配置使用H2数据库的简单教程
02-21
更多文章>
Theme by Vdoing | Copyright © 2017-2024 | 点击查看十年之约 | 豫ICP备2022014539号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式