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