SpringBoot学习

048-H2数据库

2018-10-25  本文已影响9人  郭艺宾

什么是H2 database?

H2是一个短小精干的嵌入式数据库引擎,主要的特性包括:

1、免费、开源、快速;

2、嵌入式的数据库服务器,支持集群;

3、提供JDBC、ODBC访问接口,提供基于浏览器的控制台管理程序;

4、Java编写,可使用GCJ和IKVM.NET编译;

5、短小精干的软件,1M左右。

纯内存集成

首先创建项目:

我们用mybatis进行集成,之所以加入jpa是为了让项目在启动的时候根据实体类自动建表,如果用hibernate集成会更简单一些。

配置文件:

可以看到纯内存的数据库不用任何配置。

接下来看业务代码,实体类:

为了让项目启动的时候自动建表,最少使用@Entity和@Id两个注解。这也是加入jpa的原因。

接下来是mapper类:

service类:

controller类:

然后启动项目,访问接口:

控制台:

这样的数据库停止项目就会消失,启动项目会重建,比较适合演示小功能使用。

数据存入本地

h2的数据也是可以存入本地的,在配置文件增加下面的配置:

上面的数据源配置不说,下面的spring.jpa.hibernate.ddl-auto配置有create、create-drop、update、validate、none几个值,

create:每次加载hibernate会自动创建表,以后启动会覆盖之前的表,所以这个值基本不用,严重会导致的数据的丢失。

create-drop : 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除,下一次启动会重新创建。

update:加载hibernate时根据实体类model创建数据库表,这是表名的依据是@Entity注解的值或者@Table注解的值,sessionFactory关闭表不会删除,且下一次启动会根据实体model更新结构或者有新的实体类会创建新的表。

validate:启动时验证表的结构,不会创建表

none:启动时不做任何操作

此处设置为update可以保证停止时不删数据库,重启数据依然存在。同时也看到对应目录下多了几个数据文件:

其它代码不变,重启项目,在项目中新增一条数据,然后再次重启可以发现数据依然存在。

注意,以上项目为了演示与mybatis整合,所以麻烦一些,如果和jpa整合是最理想的。

代码地址: https://gitee.com/blueses/spring-boot-demo

上一篇下一篇

猜你喜欢

热点阅读