H2数据库学习总结

H2数据库-简介

H2 是开源的轻量级Java数据库。它可以嵌入Java应用程序中或以客户端-服务器模式运行。
H2 数据库主要可以配置为作为内存数据库运行,这意味着数据将不会持久存储在磁盘上。
由于具有嵌入式数据库,因此它不用于生产开发,而主要用于开发和测试。

可以在嵌入式模式或服务器模式下使用此数据库。H2数据库的主要功能:
➢ 极快的开源JDBC API;
➢ 在嵌入式和服务器模式下可用;
➢ 基于浏览器的控制台应用程序;
➢ 提供事务支持(已提交读),两阶段提交的多个连接,表级锁定;
➢ 基于成本的优化程序,使用遗传算法进行复杂查询(零管理);
➢ 支持加密数据库(AES),SHA-256密码加密,加密功能和SSL;
➢ 包含可滚动和可更新的结果集支持,大结果集,外部结果排序,函数可以返回结果集。

H2数据库-主要特点

➢ 一个非常快的数据库引擎。
➢ H2是开源的,并用Java编写。
➢ 支持标准的SQL和JDBC API,也可以使用PostgreSQL ODBC驱动程序。
➢ 具有嵌入式和服务器模式。
➢ H2支持集群和多版本并发。
➢ 具有强大的安全功能。
➢ 占用空间小-jar文件大小约为1.5MB。

简单案例

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>RELEASE</version>
    <scope>compile</scope>
</dependency>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * H2 简单案例
 *
 * @author chengjiang
 */
public class TestH2 {
   

    private static final String JDBC_URL_LOCAL = "jdbc:h2:file:~/.h2/test";
    private static final String USER = "sa";
    private static final String PASSWORD = "123456";
    private static final String DRIVER_CLASS = "org.h2.Driver";

    public static void main(String[] args) throws Exception {
   
        // 注册驱动
        Class.forName(DRIVER_CLASS);
        Connection conn = DriverManager.getConnection(JDBC_URL_LOCAL, USER, PASSWORD);
        Statement statement = conn.createStatement();
        
        // 执行建表
        statement.execute("DROP TABLE IF EXISTS USER_INFO");
        statement.execute("CREATE TABLE USER_INFO(id INTEGER PRIMARY KEY ,name VARCHAR(50), sex VARCHAR(2))");

        // 插入数据
        statement.executeUpdate("INSERT INTO USER_INFO VALUES(1, '张丹', '男') ");
        statement.executeUpdate("INSERT INTO USER_INFO VALUES(2, '李云', '女') ");
        statement.executeUpdate("INSERT INTO USER_INFO VALUES(3, '赵武', '男') ");
        statement.executeUpdate("INSERT INTO USER_INFO VALUES(4, '林少三', '男') ");

        // 查询数据
        ResultSet resultSet = statement.executeQuery("select * from USER_INFO");

        while (resultSet.next()) {
   
            System.out.println(resultSet.getInt("id")
                    + ", " + resultSet.getString("name")
                    + ", " + resultSet.getString("sex"));
        }

        statement.close();
        conn.close();
    }
}

springboot整合H2

spring:

  # JDBC数据源配置
  datasource:
    driver-class-name: org.h2.Driver

    # 使用混合模式,默认情况下,H2 只运行一个进程访问,AUTO_SERVER=TRUE 表示可以多个进程可以访问同一个数据库
    # 数据库不存在时会自动创建,初始账号密码可以自定义。
    # ~ 连接位于当前用户目录下
    url: jdbc:h2:file:~/.h2/test;AUTO_SERVER=TRUE
#    url: jdbc:h2:C:~/.h2/test;AUTO_SERVER=TRUE

    # 使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐)
    # 这种连接方式就和其他数据库类似,是基于Service的形式进行连接的,因此允许多个客户端同时连接到H2数据库
#    url: jdbc:h2:tcp://localhost/~/test
#    url: jdbc:h2:tcp://10.35.14.122/C:/H2/user

    # 内存模式,一旦服务器重启,那么内存中的数据库和表就不存在了
#    url: jdbc:h2:mem:test_mem

    username: sa
    password: 123456

  h2:
    # H2 Web 控制台配置
    console:
      # 启用 h2 Console 控制台
      enabled: true
      # 设置访问路径
      path: /h2
      settings:
        # 是否允许远程访问,false则只能在本机访问
        web-allow-others: false
        

在这里插入图片描述

相关推荐

  1. springboot集成h2数据库

    2024-01-30 23:50:02       21 阅读
  2. H2数据库常见问题

    2024-01-30 23:50:02       15 阅读
  3. 2.3学习总结

    2024-01-30 23:50:02       26 阅读
  4. 2.4学习总结

    2024-01-30 23:50:02       33 阅读
  5. 2.12学习总结

    2024-01-30 23:50:02       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-30 23:50:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-30 23:50:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-30 23:50:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-30 23:50:02       20 阅读

热门阅读

  1. C++入门

    C++入门

    2024-01-30 23:50:02      32 阅读
  2. ESLint代码检查系列 ——入门篇

    2024-01-30 23:50:02       36 阅读
  3. ERD Online后端源码:构建你的数据建模引擎️

    2024-01-30 23:50:02       42 阅读
  4. Python计算机二级/Python期末考试 刷题(一)

    2024-01-30 23:50:02       26 阅读
  5. BGAD文章复现笔记-1

    2024-01-30 23:50:02       37 阅读
  6. CSS Transition:变魔术的艺术

    2024-01-30 23:50:02       29 阅读
  7. Shaastra CTF 2024

    2024-01-30 23:50:02       41 阅读