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.Driverurl: jdbc:h2:file:~/.h2/test;AUTO_SERVER=TRUE
username: sapassword: 123456h2:console:enabled: truepath: /h2settings:web-allow-others: false