導航:首頁 > 源碼編譯 > h2資料庫源碼

h2資料庫源碼

發布時間:2022-05-14 22:54:11

1. 用java 實現 h2資料庫和mysql資料庫實時數據同步

1、h2資料庫你寫一個類(例如:insert方法),mysql也寫一個my類(例如:insertmysql()),
當往h2資料庫執行插入的時候 new ().inser(sql);
new my().insertmysql(sql);

2、也可以直接到資料庫操作寫存儲過程和游標自動同步。
3、使用第三方插件。有很多這樣子的平台做企業數據一體化的

2. 如何將H2資料庫數據轉存到MYSQL資料庫中

這裡面有一些具體的問題,比如說是否只同步新增的數據,要同步的表是否只有少數幾個,要同步的表中是否有類似於自增欄位這種東西等等。

最簡單的情況下,只同步新增數據,只同步少數幾個表,並且表中都有自增ID,那你只需要php定時執行,參照網頁鏈接

然後每次定時執行時,讀mysql表中的最後一個id(這個id要跟你的h2的自增id一樣),然後根據這個到h2表中去讀出大於這個id的一個固定記錄數的記錄,比如一次讀5000或1萬條,然後批量插入mysql就行了

3. h2資料庫,數據插入成功,但是報錯,怎麼避免

h2資料庫,數據插入成功,但是報錯,怎麼避免
H2資料庫有好幾種運行方式,你說的這種應該就是「嵌入式"運行方式,它限制只能有一個客戶端進行操作,優點是性能好。

除了嵌入式 ,還有 伺服器 運行方式(就是像oracle/ sqlserver一樣的),但除此以外,還提供了混合模式,這種模式比較常用,和嵌入式的唯一區別就是寫jdbc url時,這樣寫:

jdbc:h2:<資料庫文件路徑名>;AUTO_SERVER=TRUE

4. 如何在H2資料庫中定義函數

h2創建資料庫語句如下:
CREATE TABLE TEST AS SELECT * FROM CSVREAD('test.csv');//csv文件數據創建test表 CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255)) AS SELECT * FROM CSVREAD('test.csv');/創建test表,csv文件相應的列插入到test表相應的欄位

H2資料庫介紹
常用的開源資料庫:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB類似,十分適合作為嵌入式資料庫使用,其它的資料庫大部分都需要安裝獨立的客戶端和伺服器端。

5. 如何訪問gerrit的h2資料庫

訪問gerrit的h2資料庫步驟:
1、從 https://code.google.com/p/gerrit/downloads/list 頁面下載gerrit的war包到某個目錄
2、資料庫准備,懶得設置用了默認的H2 DB
3、創建gerrit2用戶,初始化
sudo adser gerrit2
sudo su gerrit2
java -jar gerrit.war init -d /home/gerrit2/site
一些互動式提問,默認或自定義,同樣懶得設置apache,認證用了 development_become_any_account 選項,反向代理沒有;
設置完成就自動啟動了~; 如果沒有啟動手動 ./site/bin/gerrit.sh start

4、創建標准 後台服務連接
sudo ln -snf `pwd`/site/bin/gerrit.sh /etc/init.d/gerrit.sh
sudo ln -snf ../init.d/gerrit.sh /etc/rc3.d/S110gerrit
sudo ln -snf ../init.d/gerrit.sh /etc/rc5.d/S110gerrit

5、登陸http://10.20.20.XX:9080,頁面右上角點擊become :
注冊用戶 fullname emailaddress name ssh公鑰(.ssh/id_rsa.pub)設置保存,
設置保存後,在客戶端驗證一下,命令及輸出如下:

[$name@$hostname ~]$ ssh -p 29418 [email protected]

**** Welcome to Gerrit Code Review ****

Hi $fullname, you have successfully connected over SSH.

Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:

git clone ssh://$name@$hostName.$domainname:29418/REPOSITORY_NAME.git

Connection to 10.20.20.XX closed.

6、從gerrit伺服器,clone代碼工
git clone ssh://[email protected]:29418/$repoName.git
7、進入項目目錄cd $repoName 安裝hook; 鉤子的目的是在提交信息中自動創建 'Change-Id:' 標簽
scp -p -P 29418 [email protected]:hooks/commit-msg .git/hooks/
8、修改提交
9、push 到gerrit伺服器
git push origin HEAD:refs/for/$branchName
#直接git push會失敗,原因還不知道~~ ~~
10、push成功後web頁面All->open和My->changes標簽下面,就可以看到提交的修改了

11、web的review沒有approve選項,需要在project的accecss中增加相應許可權; 還有後面的verify許可權也是類似操作;

6. 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

狗哥找的

7. 什麼是H2資料庫

H2是Thomas Mueller提供的一個開源的、純java實現的關系資料庫。

H2是一個開源的嵌入式資料庫引擎,採用java語言編寫,不受平台的限制,同時H2提供了一個十分方便的web控制台用於操作和管理資料庫內容。H2還提供兼容模式,可以兼容一些主流的資料庫,因此採用H2作為開發期的資料庫非常方便。

H2最大的用途在於可以同應用程序打包在一起發布,這樣可以非常方便地存儲少量結構化數據。

它的另一個用途是用於單元測試。啟動速度快,而且可以關閉持久化功能,每一個用例執行完隨即還原到初始狀態。

H2的第三個用處是作為緩存,作為NoSQL的一個補充。當某些場景下數據模型必須為關系型,可以拿它當Memcached使,作為後端MySQL/Oracle的一個緩沖層,緩存一些不經常變化但需要頻繁訪問的數據,比如字典表、許可權表。不過這樣系統架構就會比較復雜了。

(7)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客戶端。

8. h2資料庫在linux伺服器怎麼使用

1、h2-2011-04-04.zip 下載地址:http://www.h2database.com/html/download.html
2、解壓文件,這里以%H2_HOME%表示為解壓的文件目錄。運行%H2_HOME%\bin\h2.bat 將會自動打開下面網址。(請確認是否安裝了jdk,並設置了JAVA_HOME環境變數)
http://192.168.140.1:8082/login.jsp?jsessionid=

3、點擊 connect ,登錄。

4、執行上圖中紅色部分sql語句,成功創建test表。

因為沒有指定資料庫文件位置,會自動輸出到輸出到C:\Users\Administrator下。

H2文件結構

%H2_HOME%
-h2
-bin
h2-1.3.154.jar //jar包
h2.bat //Windows控制台啟動腳本
h2.sh //Linux控制台啟動腳本
h2w.bat //Windows控制台啟動腳本(不帶黑屏窗口)
+docs 幫助文檔
+service //通過wrapper包裝成服務。
+src //源代碼
build.bat windows構建腳本
build.sh linux構建腳本

9. 如何用Java程序啟動H2資料庫(完整代碼)

package test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.h2.tools.Server;

public class H2Demo {
private Server server;
private String port = "9094";
private String dbDir = "./h2db/sample";
private String user = "zhoujiang";
private String password = "123456";

public void startServer() {
try {
System.out.println("正在啟動h2...");
server = Server.createTcpServer(
new String[] { "-tcpPort", port }).start();
} catch (SQLException e) {
System.out.println("啟動h2出錯:" + e.toString());
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}

public void stopServer() {
if (server != null) {
System.out.println("正在關閉h2...");
server.stop();
System.out.println("關閉成功.");
}
}

public void useH2() {
try {
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:" + dbDir,
user, password);
Statement stat = conn.createStatement();
// insert data
stat.execute("CREATE TABLE TEST(NAME VARCHAR)");
stat.execute("INSERT INTO TEST VALUES('Hello World')");

// use data
ResultSet result = stat.executeQuery("select name from test ");
int i = 1;
while (result.next()) {
System.out.println(i++ + ":" + result.getString("name"));
}
result.close();
stat.close();
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main(String[] args) {
H2Demo h2 = new H2Demo();
h2.startServer();
h2.useH2();
h2.stopServer();
System.out.println("==END==");
}
}

10. h2創建資料庫語句

h2創建資料庫語句如下:
CREATE TABLE TEST AS SELECT * FROM CSVREAD('test.csv');//csv文件數據創建test表 CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255)) AS SELECT * FROM CSVREAD('test.csv');/創建test表,csv文件相應的列插入到test表相應的欄位

H2資料庫介紹
常用的開源資料庫:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB類似,十分適合作為嵌入式資料庫使用,其它的資料庫大部分都需要安裝獨立的客戶端和伺服器端。
H2的優勢:
1、h2採用純Java編寫,因此不受平台的限制。
2、h2隻有一個jar文件,十分適合作為嵌入式資料庫試用。
3、性能和功能的優勢
H2比HSQLDB的最大的優勢就是h2提供了一個十分方便的web控制台用於操作和管理資料庫內容,這點比起HSQLDB的swing和awt控制台實在好用多了。

閱讀全文

與h2資料庫源碼相關的資料

熱點內容
南京解壓車要帶什麼 瀏覽:562
天堂2編譯視頻教程 瀏覽:392
伺服器沒有進程怎麼辦 瀏覽:784
阿里雲發布新物種神龍雲伺服器 瀏覽:59
數據結構遞歸演算法統計二叉樹節點 瀏覽:666
ev3怎麼編程 瀏覽:702
gzip壓縮教程 瀏覽:349
解壓模擬例子 瀏覽:984
流媒體伺服器如何實現視頻轉發 瀏覽:57
linux字元串md5 瀏覽:302
支撐突破選股源碼怎麼設置 瀏覽:934
湖南戴爾伺服器維修雲主機 瀏覽:494
解壓到文件夾的視頻都自動隱藏了 瀏覽:569
閱讀器支持php 瀏覽:222
人生需求怎麼解壓 瀏覽:795
pdf列印機找不到 瀏覽:1001
如何同時使用兩個apache伺服器 瀏覽:723
國外php論壇 瀏覽:966
災難是命令 瀏覽:604
linux火狐瀏覽器安裝 瀏覽:71