① h2資料庫測試成功 為什麼進去之後報錯
H2資料庫有好幾種運行方式,你說的這種應該就段爛滑是「嵌入式"運行方式,它限制只能有一個客戶端進行操作,優點握臘是性能好。
除了嵌歷槐入式 ,還有 伺服器 運行方式(就是像oracle/ sqlserver一樣的),但除此以外,還提供了混合模式,這種模式比較常用,和嵌入式的唯一區別就是寫jdbc url時,這樣寫:
jdbc:h2:<資料庫文件路徑名>;AUTO_SERVER=TRUE
② 什麼是H2資料庫
H2是Thomas Mueller提供的一個開源的、純java實現的關系資料庫。
H2是一個開源的嵌入式資料庫引擎,採用java語言編寫,不受平台的限制,同時H2提供了一個十分方便的web控制台用於操作和管理資料庫內容。H2還提供兼容模式,可以兼容一些主流的資料庫,因此採用H2作為開發期的資料庫非常方便。
H2最大的用途在於可以同應用程序打包在一起發布,這樣可以非常方便地存儲少量結構化數據。
它的另一個用途是用於單元測試。啟動速度快,而且可以關閉持久化功能,每一個用例執行完隨即還原到初始狀態。
H2的第三個用處是作為緩存,作為NoSQL的一個補充。當某些場景下數據模型必須為關系型,可以拿它當Memcached使,作為後端MySQL/Oracle的一個緩沖層,緩存一些不經常變化但需要頻繁訪問的數據,比如字典表、許可權表。不過這樣系統架構就會比較復雜了。
(2)H2資料庫測試擴展閱讀:
H2資料庫運行方式:
1、內存模式
資料庫只在內存中運行,關閉連接後資料庫將被清空,適合測試環境,連接字元串:jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1,如果不指定DBName,則以私有方式啟動,只允許一個連接。
2、嵌入式
資料庫持久化存儲為單個文件。連接字元串:jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE。~/.h2/DBName表示資料庫文件的存儲位置,如果第一次連接則會自動創建資料庫。
3、服務模式
H2支持三種服務模式:web server:此種運行方式支持使用瀏覽器訪問H2 Console。
CP server:支持客戶端/伺服器端的連接方式。
PG server:支持PostgreSQL客戶端。
③ H2資料庫
According to documentation, closing the last connection closes the database and when closing the database, the database is automatically compacted for up to 200 milliseconds
.
I guess these together may cause data loss & corruption when a
single connection is repeatedly created, data altered, connection
closed, new connection created, etc. - eventually resulting in
exception such as "Block not found in id [1, -128, 8, 42] [1.4.186/50]"
when trying to access the DB. Version 1.3.176 (last stable) works fine with this, version 1.4.186 crashes and corrupts data.
The
behavior can be fixed by appending ";DB_CLOSE_DELAY=-1" to the DB URL,
i.e. disabling autoclosing DB when last connection is closed. I though
it might have had something to do with 1.4's new "FS" file locking
protocol, but changing that to old "FILE" doesn't seem to help.
Of
course this is not how a DB connection is typically used - when using a
connection pool, this would go unnoticed - and I found this purely by
accident. But it's a bug anyway, isn't it?
Best Regards,
Joonas
狗哥找的
④ springboot一個工程如何調用另一個工程的介面
不知道你的兩個項目連的是不是同一個數液扒據庫,如果是同一個資料庫的話可以放進去資料庫中,鬧茄昌另一個項目去資料庫讀取
或者兩納畝個項目在同一台伺服器的話可以放在內存中,然後去讀,比如用redis
⑤ h2資料庫在linux伺服器怎麼使用
簡單來說就是用jdbc:h2:mem:h2db來建立內存模式,並建表, 然後jdbc:h2:tcp://192.168.20.141:8082/mem:h2db來訪問上面的內存資料庫 package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; imp...
⑥ h2資料庫遞歸查不來數據
h2資料庫遞歸查不來數據原因如下。
1、可能出現類型不匹配的問題:例如資料庫中存儲拆裂的是int類型的值嫌賀,前端傳遞過來的是string類型的值,所以查詢不到匹配的數據。
2、還有就是可能存在資料庫緩存的問題:這里資料庫的二級緩存,即是對數據的crud有影響,每次的crud之後,查詢的數據都是從資料庫的緩存中獲取的數據,不是從資料庫中獲取的最新的旅者閉數據。
⑦ h2console怎麼載入資料庫
1.1、搭建JavaWeb測試項目
創建一個【H2DBTest】JavaWeb項目,找到H2資料庫的jar文件,如下圖所示:
H2資料庫就一個jar文件,這個Jar文件裡麵包含了使用JDBC方式連接H2資料庫時使用的驅動類,將"h2-1.4.183.jar"加入到【H2DBTest】項目中,如下圖所示:
二、啟動H2資料庫
既然是要將H2資料庫作為我們Web應用的一部分嵌入進來,那麼我們就要在Web應用中啟動H2資料庫的服務,這樣我們才能夠連接到H2資料庫,因此我們可以編寫一個專門用於啟動H2資料庫服務的監聽器(Listener)
⑧ h2資料庫比mysql快多少
快速是因為h2資料庫是內存資料庫,所以相對來說比Mysql會仔攜快速一些,可以用於測試,h2屬於關系型宴戚世資料庫,但是正式項目不適用於h2,會影響性能晌肢。