中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

嵌入式數據庫H2的使用以及集成Spring Boot的操作示例

發布時間:2021-09-10 18:06:02 來源:億速云 閱讀:447 作者:柒染 欄目:大數據

嵌入式數據庫H2的使用以及集成Spring Boot的操作示例,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1.概要

前面講一些Mybatis特性的時候總是要寫一些例子演示給粉絲。用Mysql或者其他很大的數據庫太重了,因為只是個demo而已。當然也可以使用docker來安裝。但是還是需要依賴一些東西。有沒有非常小巧而且便于攜帶的數據庫,而且能滿足很小場景的數據庫。當然有。今天介紹一種純java編寫而且支持jdbc的嵌入式關系型數據庫H2。

2.數據庫H2

H2數據庫的特點:

  • 非常快,開源,支持JDBC API

  • 嵌入式和服務器模式;內存數據庫

  • 基于瀏覽器的控制臺應用程序

  • 占用空間小,jar只有2MB大小

以上只是官網列出的特點。其實還有跨平臺的優勢,支持目前常見的大部分平臺。還兼容常見的主流關系型數據庫,比如DB2、Oracle、MS SQL Server、Mysql、PostgreSQL、HSQLDB、Ignite、Derby等。

3.使用場景

基于以上的特點。H2數據庫特別適用于快速構建的小型應用。尤其在應用開發中和單元測試中使用非常方便,而且節省系統資源。而且springboot的依賴池也收錄了H2數據庫。接下來我們通過springboot結合Mybatis來對H2數據庫進行一些特性的講解演示。

4.springboot中使用H2

springboot使用H2數據庫非常簡單。集成BOM下的H2依賴就可以了。這里為了演示我們還引入了Mybatis。

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

        <dependency>
            <groupId>com.h3database</groupId>
            <artifactId>h3</artifactId>
            <scope>runtime</scope>
        </dependency>

當然引入依賴還不夠我們還需要對其他參數進行配置。當然這些配置可以通過springboot的 application.yml(application.properties)來完成。我們知道H2支持像tomcat一樣內嵌到springboot應用中,也支持獨立的server進程模式。通過不同的配置我們來演示一下。

5.內嵌模式

內嵌模式,就是把在應用中引入H2,啟動應用的同時,會把H2數據服務也啟動,應用中既包含了H2數據庫的服務端,同時應用又作為客戶端來連接H2數據庫。

5.1 內存模式連接

內存模式就是數據庫文件存在于內存中,沒有持久化,當應用進程關閉時數據庫與數據表會消失。為了獨立環境,我們利用springboot的profile特性來隔離不同模式的環境配置。我們定制一個名稱為application-inner.yml來測試內嵌模式。配置如下:

spring:
  datasource:
    #  驅動
    driver-class-name: org.h3.Driver
    # h3 內存數據庫 內存模式連接配置 庫名: mybatis
    url: jdbc:h3:mem:mybatis
    # 初始化數據表 DDL
    schema: classpath:sql/init.sql
    #  初始化數據 DML
    data: classpath:sql/data.sql
  h3:
    #    開啟console 訪問 默認false
    console:
      enabled: true
      settings:
        #      開啟h3 console 跟蹤 方便調試  默認 false
        trace: true
        #      允許console 遠程訪問 默認false
        web-allow-others: true
      #  h3 訪問路徑上下文
      path: /h3-console
# 日志
logging:
  level:
    cn:
      felord: debug

# mybatis 配置
mybatis:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true
  type-aliases-package: cn.felord.mybatis.entity
  type-handlers-package: cn.felord.mybatis.type

springboot項目 通過指定 --spring.profiles.active=inner啟動后,輸入http://localhost:8080/h3-console,進入H2數據的控制臺:

嵌入式數據庫H2的使用以及集成Spring Boot的操作示例

一定要注意紅框按照你配置文件中的spring.datasource.url來設置,不要用默認值。如果沒有設置密碼直接點connect,設置密碼了輸入。進入下列界面:

嵌入式數據庫H2的使用以及集成Spring Boot的操作示例

因為我們在初始化指定了DDL 、 DML SQL腳本,創建了student表,而且插入了3條數據。所以會呈現出來。證明集成成功。同時我們執行maven 工程的測試包也會成功完成Mybatis 單元測試。但是我們關閉應用后數據會丟失因為這些數據存在于內存中。內存是會被回收的。不信你注釋掉 spring.datasource.schemaspring.datasource.data 重啟看看。那么如何持久化呢?這就用到嵌入模式了。

5.2 嵌入模式連接

嵌入模式就是數據庫文件存在于應用當前的硬盤內,進行了持久化,當應用進程關閉時數據庫與數據表不會消失。我們只需要將5.1的yml配置中的 spring.datasource.url 改為jdbc:h3:file:E:/H2/mybatis 。然后啟動重新登錄console。注意url要改為jdbc:h3:file:E:/H2/mybatis哦。發現數據都在,然后我們關閉再啟動發現報錯了:

嵌入式數據庫H2的使用以及集成Spring Boot的操作示例

說明數據庫中的數據沖突了。我們注釋掉DDL、DML初始化發現又能啟動了。證明數據持久化了。url 中 file: 后綴你系統的可用路徑,H2就能把數據持久化到該路徑下。

5.3兼容性

開始我們提到H2可以兼容很多數據庫。如何兼容呢?通過url后綴MODE參數來設置,總結一下自己使用:

  • Oracle jdbc:h3:~/test;MODE=Oracle或SQL語句SET MODE Oracle

  • Mysql jdbc:h3:~/test;MODE=MySQL;DATABASE\_TO\_LOWER=TRUE

  • PostgreSQL jdbc:h3:~/test;MODE=PostgreSQL;DATABASE\_TO\_LOWER=TRUE

  • MS SQL Server jdbc:h3:~/test;MODE=MSSQLServer或SQL語句SET MODE MSSQLServer

其他不一一列舉,但是注意兼容也不是完全兼容,會有一些注意事項和微小的差別。一般不會出現問題。進一步了解可查閱官方文檔和其他資料。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大厂| 冕宁县| 诸暨市| 炎陵县| 博罗县| 蒙城县| 绥化市| 双柏县| 云霄县| 甘德县| 南靖县| 那曲县| 威宁| 南京市| 衡阳市| 皋兰县| 南川市| 靖边县| 陈巴尔虎旗| 苍南县| 万荣县| 六安市| 含山县| 呼玛县| 平顺县| 洛川县| 雅安市| 德钦县| 清流县| 甘德县| 恩施市| 静海县| 怀柔区| 洛宁县| 论坛| 蕲春县| 峨边| 常山县| 慈利县| 扶风县| 兴安盟|