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
        

在这里插入图片描述

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要连接H2数据库,可以按照以下步骤: 1. 下载H2数据库:从H2官网(http://www.h2database.com/html/main.html)下载最新的H2数据库版本并解压缩。 2. 启动H2数据库:在解压缩的H2数据库目录下,运行h2.bat(Windows下)或者h2.sh(Linux下)来启动H2数据库。 3. 创建数据库:在H2数据库的控制台中,使用CREATE DATABASE语句来创建一个新的数据库。 4. 连接数据库:在Java程序中,使用JDBC API来连接到H2数据库。示例代码如下: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class H2DatabaseConnection { public static void main(String[] args) { // JDBC driver name and database URL final String JDBC_DRIVER = "org.h2.Driver"; final String DB_URL = "jdbc:h2:tcp://localhost/~/test"; // Database credentials final String USER = "sa"; final String PASS = ""; Connection conn = null; try { // Register JDBC driver Class.forName(JDBC_DRIVER); // Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); // Do something with the connection... } catch (SQLException se) { // Handle errors for JDBC se.printStackTrace(); } catch (Exception e) { // Handle errors for Class.forName e.printStackTrace(); } finally { // Close the connection try { if (conn != null) { conn.close(); } } catch (SQLException se) { se.printStackTrace(); } } } } ``` 在上面的示例代码中,JDBC驱动程序的类名为org.h2.Driver,数据库URL为jdbc:h2:tcp://localhost/~/test,其中localhost表示数据库服务器所在的主机名,test是数据库名称。用户名和密码为空。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值