项目案例代码:github/h2db
H2 是一个纯 Java 开发的嵌入式数据库,它可以作为内存数据库将数据保存在内存中,也可以持久化保存在硬盘中
H2 最主要的一个特征在于它足够轻,轻到只用一个 jar 包便可以启动
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.196</version>
</dependency>
以 Mysql 为例,传统的数据库要启动一般包含下面几个步骤
-
下载安装 Mysql
-
建库建表
-
创建应用、设置源地址、建立连接并编码
而 H2 可以省略安装的操作,并且极大简化建库建表跟编码的工作
咋一看,好像没啥特别的作用,但在下面这几个应用场景中还是用 h2 最为合适
-
案例型项目:纯粹为了验证某一种技术方案可行性而编写的 demo 项目
-
各种项目下的测试单元:测试单元如果涉及到数据库的操作,那么这种情况下使用 h2 并将数据临时存储在内存种是最合适不过的
-
client-server 类型的项目
H2 作为一款嵌入式数据库,同时支持两种运行模式:In-memory DataBae 与 Persisted Database
前者是在系统启动时,将数据库直接创建在内存中,系统每次重启都会清除所有数据库相关信息(案例演示跟测试单元中常用这种模式)
后者则是将数据持久化保存在硬盘中,当然现在并不推荐这种方式(毕竟要持久化保存数据的话,还是 mysql 这些来的靠谱)
假设要创建一个名为 test_base 的数据库,如果我们以 In-memory DataBae 的模式启动,那么按照下述编写代码即可:
String JDBC_DRIVER = "org.h2.Driver";
String url = "jdbc:h2:mem:test_base";
String user = "sa";
String passwd = "";
//注册JDBC驱动类
Class.forName(JDBC_DRIVER);
//建立链接
Connection conn = DriverManager.getConnection(url, user, passwd);
如果要以 Persisted Database 模式启动,将 url 改为: jdbc:h2:./data/db/test_base
即可(更详细的代码请参考 h2db-basic 的代码)
注意这里的"./data/db/"表示操作系统的相对目录,test_base 为数据库名
除了上述直接用原生的写法之外,h2 也可以在 Spring Boot、Mybatis 等框架下运行
-
h2 在 Spring Boot 下的运行请参考 h2db-spring 的代码
-
h2 在 Spring Boot 下结合 Mybatis 运行请参考 h2db-spring-ibatis 的代码
-
h2 结合测试单元的使用案例请参考 h2db-spring-ibatis 的代码
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于