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数据库

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