springboot集成h2

来源:https://www.cnblogs.com/jin-zhe/archive/2018/01/05/8203347.html
-Advertisement-
Play Games

h2資料庫是常用的開源資料庫,與HSQLDB類似,十分適合作為嵌入式資料庫使用,其他的資料庫大部分都需要安裝獨立的客戶端和伺服器端 h2的優勢: (1)h2採用純java編寫,因此不受平臺的限制 (2)h2只有一個jar文件,十分適合作為嵌入式資料庫使用 (3)h2提供了一個十分方便的web控制台用 ...


h2資料庫是常用的開源資料庫,與HSQLDB類似,十分適合作為嵌入式資料庫使用,其他的資料庫大部分都需要安裝獨立的客戶端和伺服器端
 h2的優勢
  (1)h2採用純java編寫,因此不受平臺的限制
  (2)h2只有一個jar文件,十分適合作為嵌入式資料庫使用
  (3)h2提供了一個十分方便的web控制台用於操作和管理資料庫內容。

下麵介紹下h2資料庫的簡單使用

1.添加依賴

  創建項目的時候,在資料庫選項里直接勾選h2選項,如果是二次項目,在pom文件里添加以下依賴

<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <scope>runtime</scope>
</dependency>

2.連接配置

在 application.properties 文件(或者 applocation.yml 文件)對資料庫進行連接配置

1 spring.datasource.url = jdbc:h2:file:~/.h2/testdb //配置h2資料庫連接地址 
2 spring.datasource.driverClassName =org.h2.Driver //配置JDBC Driver
3 spring.datasource.username = sa //配置資料庫用戶名
4 spring.datasource.password = //配置資料庫密碼

  完成依賴配置和連接配置以後,就可以在項目里使用h2資料庫了,Spring會自動完成Datasource的註入,之後無論是用jpa還是mybatis都可以

3.數據初始化配置

如果需要在程式啟動時對資料庫進行初始化操作,在 application.peoperties 或yml文件里對資料庫進行配置

1 spring.datasource.schema=classpath:db/schema.sql   //進行該配置後,每次啟動程式,程式都會運行
2 resources/db/schema.sql                            //sql文件,對資料庫的結構進行操作。xml文件也行
3 spring.datasource.data=classpath:db/data.sql       //進行該配置後,每次啟動程式,程式都會運行    
4 resources/db/data.sql                              //sql文件,對資料庫的數據操作。xml文件也行

這個配置十分適合開發環境,最好把資料庫結構的構建sql放在 resources/db/schema.sql ,數據sql放在 resources/db/data.sql 中,這樣每次
重啟項目都可以得到一個新的資料庫,這樣就不需要每次為了測試而修改數據中的內容了。

4.h2 web consloe

   h2 web consloe是一個資料庫GUI管理應用,和phpMyAdmin類似,程式運行時,會自動啟動h2 web consloe,當然也可以進行如下的配置:

1 spring.h2.console.settings.web-allow-others=true        //進行該配置後,h2 web consloe就可以在遠程訪問了。否則只能在本機訪問。
2 spring.h2.console.path=/h2-console                      //進行該配置,你就可以通過YOUR_URL/h2-console訪問h2 web consloe。YOUR_URL是你程式的訪問URl。
3 spring.h2.console.enabled=true                   //進行該配置,程式開啟時就會啟動h2 web consloe。當然這是預設的,如果你不想在啟動程式時啟動h2 web consloe,那麼就設置為false。

配置以後,在瀏覽器輸入 http://localhost:8080/h2-console  然後輸入用戶名和密碼,選擇好合適的語言,就可以進入資料庫管理應用啦

5.實例

  在resource文件下新建包 changelog ,包里包含三個xml文件: changelog.xml ,  data.xml  , init.xml 
   其中 changelog.xml 寫的是資料庫表的結構 , data.xml 文件里寫的是資料庫表的初始化數據  init.xml 是初始化載入的xml文件,包含前兩個xml文件的路徑

 init.xml 文件:

1 <?xml version="1.0" encoding="utf-8"?>
2 <databaseChangeLog
3         xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
4         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
6     <include file="changeLog.xml" relativeToChangelogFile="true"/>
7     <include file="data.xml" relativeToChangelogFile="true"/>
8 </databaseChangeLog>

 changelog.xml 文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <databaseChangeLog
 3         xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
 4         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
 6         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
 7 
 8     <property name="autoIncrement" value="true" dbms="h2"/>
 9     <changeSet id="init-schema" author="jinzhe"  >
10         <comment>init schema</comment>
11 
12         <createTable tableName="user">
13             <column name="id" type="bigint" autoIncrement="${autoIncrement}">
14                 <constraints primaryKey="true" nullable="false"/>
15             </column>
16             <column name="username" type="varchar(20)" >
17                 <constraints  nullable="false" uniqueConstraintName="username"/>
18             </column>
19             <column name="password" type="varchar(20)">
20                 <constraints  nullable="false"/>
21             </column>
22             <column name="email" type="varchar(20)">
23                 <constraints  nullable="false"/>
24             </column>
25             <column name="phone" type="varchar(11)">
26                 <constraints  nullable="false"/>
27             </column>
28             <column name="sex" type="varchar(2)">
29                 <constraints  nullable="false"/>
30             </column>
31             <column name="creat_time" type="java.util.Date">
32                 <constraints  nullable="false"/>
33             </column>
34             <column name="update_time" type="java.util.Date">
35                 <constraints  nullable="false"/>
36             </column>
37         </createTable>
38     </changeSet>
39 </databaseChangeLog>

 data.xml 文件:

 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2 <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
 3                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4                    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
 5     
 6     <changeSet id="001" author="jin">
 7         
 8         <insert tableName="user" schemaName="public" >
 9             <column name="id" value="1"></column>
10             <column name="username" value="admin123"></column>
11             <column name="password" value="123456"></column>
12             <column name="email" value="[email protected]"></column>
13             <column name="phone" value="15330774444"></column>
14             <column name="sex" value="男"></column>
15             <column name="creat_time" value="2017-12-01 00:00:00"></column>
16             <column name="update_time" value="2017-12-01 00:00:00"></column>
17         </insert>
18 
19     </changeSet>
20 
21 </databaseChangeLog>

 參考:https://segmentfault.com/a/1190000007002140


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 優先安裝軟體1. net framework3.5。2. 在安裝SQL SERVER 2012前需要3.5的支持。在WIN 2012系統可以在系統管理的添加角色和功能中安裝,如下將【.NET Framework 3.5功能】、【.NET Framework 4.5功能】下的組件全部勾選上。3.... ...
  • Sqoop是一個用來將Hadoop和關係型資料庫中的數據相互轉移的工具,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型資料庫中。Sqoop是為大數據集設計的。Sqoop支持增量更新,將新記 ...
  • SQL Server授權購買簡單介紹 之前有同事問我,使用盜版序列號的SQL Server到底有沒有性能限制,之前本人一直沒有深入研究過,後來經過一番資料搜集和查證,彙總成這篇文章 微軟的SQL Server產品分為兩種賣法 1、盒裝 1、盒裝 :Server+CAL授權方式(SQL2017取消了S ...
  • 概念對比介紹 相信有些人會對ORACLE當中的AMM(Automatic Memory Management)與ASMM(Automatic Shared Memory Management)有些迷惑或混淆,不清楚兩者的異同,本文會從幾個方面來總結一下兩者的異同。如有不足或疏漏之處,敬請指正! 從O... ...
  • Liquibase是一個用於跟蹤、管理和應用資料庫變化的開源的資料庫重構工具。它將所有資料庫的變化(包括結構和數據)都保存在XML文件中,便於版本控制。 Liquibase具備如下特性:* 不依賴於特定的資料庫,目前支持包括Oracle/Sql Server/DB2/MySql/Sybase/Pos ...
  • 通過phpmyadmin登陸時提示以下錯誤: phpmyadmin crypt_random_string requires at least one symmetric cipher be loaded 報錯原因:路徑問題。 解決辦法: 1、進入到phpmyadmin根目錄下,打開\librari ...
  • 學習目標: -多列子查詢 -SQL語句中使用標量子查詢 -更新或刪除行使用關聯子查詢 -使用EXISTS和NOT EXISTS操作符 -使用WITH子句 多列子查詢 語法: Main query WHERE (<column_name>,<column_name>) IN Subquery; 列的比 ...
  • 語法 1、建表 create table 表名( 列名 數據類型, …… ); 2、刪除表:drop table 表名; 3、添加列:alter table 表名 add(列名 數據類型); 4、修改列:alter table 表名 rename column 原列名 to 列名; 5、修改數據類型 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...