048-H2数据库

作者: 郭艺宾 | 来源:发表于2018-10-25 18:39 被阅读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

相关文章

  • 048-H2数据库

    什么是H2 database? H2是一个短小精干的嵌入式数据库引擎,主要的特性包括: 1、免费、开源、快速; 2...

  • MySQL数据库day01

    系统数据库 ​​​ 创建数据库 ​​​ ​​​ ​​​ ​​​ 查看所有数据库 使用数据库 修改数据库 删除数据库...

  • 数据库操作

    创建数据库: 选择数据库: 查看数据库: 修改数据库: 删除数据库:

  • Ubuntu操作mysql数据库命令

    一、连接数据库 连接本地数据库 退出数据库 二、操作数据库 创建数据库 显示数据库 删除数据库 连接数据库 查看状...

  • 4-14

    创建数据库 createdatabase数据库名称; 删除数据库 dropdatabase数据库名称; 查看数据库...

  • [后端开发] Mysql学习笔记

    1.0 数据库 创建数据库 查看所有数据库 删除数据库 切换数据库名 查看正在使用的数据库 2.0 数据库表 创...

  • 2020最新最全数据库系统安全

    数据库标识与鉴别 数据库访问控制 数据库安全审计 数据库备份与恢复 数据库加密 资源限制 数据库安全加固 数据库安...

  • 2020-01-05 sql基本概念

    数据库用来储存数据。 数据库的种类大致有:层次数据库、关系数据库、面向对象数据库、XML数据库、键值数据库。 关系...

  • Mysql数据库基本操作

    连接数据库 退出数据库 查看数据库版本 显示数据库时间 查看当前使用的数据库 查看所有数据库 数据库备份 导入数据...

  • mysql命令行操作

    准备 登陆 数据库操作 查看现有数据库 创建数据库 删除数据库 查看数据库 使用数据库 查看当前数据库 表操作 新...

网友评论

    本文标题:048-H2数据库

    本文链接:https://www.haomeiwen.com/subject/rpbctqtx.html