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;
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:
  
  datasource:
    driver-class-name: org.h2.Driver
    
    
    
    url: jdbc:h2:file:~/.h2/test;AUTO_SERVER=TRUE
    
    
    
    username: sa
    password: 123456
  h2:
    
    console:
      
      enabled: true
      
      path: /h2
      settings:
        
        web-allow-others: false
        
 
