springboot小技巧(轉)

2022-10-11 11:12:10 字數 1692 閱讀 7456

一些springboot小技巧、小知識點

我們在做測試的時候經常需要初始化匯入一些資料,如何來處理呢?會有兩種選擇,一種是使用jpa,另外一種是spring jdbc。兩種方式各有區別下面來詳細介紹。

使用jpa

使用spring jdbc

使用spring jdbc 需要在配置檔案中新增以下配置

spring:

datasource:

schema: database/data.sql

sql-script-encoding: utf-8

jpa:

hibernate:

ddl-auto: none

spring boot專案啟動的時候會自動執行指令碼。

ddl-auto 四個值的解釋

create: 每次載入hibernate時都會刪除上一次的生成的表,然後根據你的model類再重新來生成新錶,哪怕兩次沒有任何改變也要這樣執行,這就是導致資料庫表資料丟失的乙個重要原因。

create-drop :每次載入hibernate時根據model類生成表,但是sessionfactory一關閉,表就自動刪除。

update:最常用的屬性,第一次載入hibernate時根據model類會自動建立起錶的結構(前提是先建立好資料庫),以後載入hibernate時根據 model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到伺服器後,表結構是不會被馬上建立起來的,是要等 應用第一次執行起來後才會。

validate :每次載入hibernate時,驗證建立資料庫表結構,只會和資料庫中的表進行比較,不會建立新錶,但是會插入新值。

5、 none : 什麼都不做。

不同點

第一種方式啟動的時候jpa會自動建立表,import.sql只負責建立表單後的初始化資料。第二種方式啟動的時候不會建立表,需要在初始化指令碼中加班判斷表是否存在,不存在建立表再初始化指令碼的步驟。

在生產中,這兩種模式都建議慎用!

參考:howto-database-initialization

預設配置下,thymeleaf對.html的內容要求很嚴格,比如,如果少最後的標籤封閉符號/,就會報錯而轉到錯誤頁。也比如你在使用vue.js這樣的庫,然後有

這樣的html**,也會被thymeleaf認為不符合要求而丟擲錯誤。

通過設定thymeleaf模板可以解決這個問題,下面是具體的配置:

spring.thymeleaf.cache=false

spring.thymeleaf.mode=legacyhtml5

legacyhtml5需要搭配乙個額外的庫nekohtml才可用

專案中使用的構建工具是m**en新增如下的依賴即可完成:

net.sourceforge.nekohtmlgroupid>

nekohtmlartifactid>

1.9.22version>

dependency>

參考:thymeleaf模板對沒有結束符的html5標籤解析出錯的解決辦法

Linux GCC程式設計小技巧 轉)

怕自已忘了,寫在這裡,不定期更新!1.檢視庫里的方法 2.makefile中列出乙個目錄中的所有檔案並處理 datas data rdatas shell echo datas sed e s,g push0 for target in rdatas do echo push target adb ...

ACM做題小技巧《轉》

acm做題小技巧 轉 我的acm 博文來自 acm做題過程中的一些小技巧。1.一般用c語言節約空間,要用c 庫函式或stl時才用c cout cin和printf scanf最好不要混用。大資料輸入輸出時最好不要用cin cout,防止超時。2.有時候int型不夠用,可以用long long或 in...

markdown 轉 Html (小技巧)

整篇部落格使用 cdn 的方式引用以下檔案 npm i marked s charset utf 8 marked in the browsertitle head content div src script document.getelementbyid content innerhtml ma...