⑴ 用java 實現 h2資料庫和mysql資料庫實時數據同步
1、h2資料庫你寫一個類(例如:insert方法),mysql也寫一個my類(例如:insertmysql()),
當往h2資料庫執行插入的時候 new ().inser(sql);
new my().insertmysql(sql);
2、也可以直接到資料庫操作寫存儲過程和游標自動同步。
3、使用第三方插件。有很多這樣子的平台做企業數據一體化的
⑵ 如何用Java代碼後台啟動H2資料庫的內存模式有知道的嗎
packagetest;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importorg.h2.tools.Server;
publicclassH2Demo{
privateServerserver;
privateStringport="9094";
privateStringdbDir="./h2db/sample";
privateStringuser="zhoujiang";
privateStringpassword="123456";
publicvoidstartServer(){
try{
System.out.println("正在啟動h2...");
server=Server.createTcpServer(
newString[]{"-tcpPort",port}).start();
}catch(SQLExceptione){
System.out.println("啟動h2出錯:"+e.toString());
//TODOAuto-generatedcatchblock
e.printStackTrace();
thrownewRuntimeException(e);
}
}
publicvoidstopServer(){
if(server!=null){
System.out.println("正在關閉h2...");
server.stop();
System.out.println("關閉成功.");
}
}
publicvoiseH2(){
try{
Class.forName("org.h2.Driver");
Connectionconn=DriverManager.getConnection("jdbc:h2:"+dbDir,
user,password);
Statementstat=conn.createStatement();
//insertdata
stat.execute("CREATETABLETEST(NAMEVARCHAR)");
stat.execute("INSERTINTOTESTVALUES('HelloWorld')");
//usedata
ResultSetresult=stat.executeQuery("selectnamefromtest");
inti=1;
while(result.next()){
System.out.println(i+++":"+result.getString("name"));
}
result.close();
stat.close();
conn.close();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
H2Demoh2=newH2Demo();
h2.startServer();
h2.useH2();
h2.stopServer();
System.out.println("==END==");
}
}
⑶ 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資料庫的內存模式
簡單來說就是用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;
import java.sql.SQLException;
import java.sql.Statement;
import org.h2.tools.Server;
public class H2Demo {
private Server server;
private String port = "8082";
private static String sourceURL1 = "jdbc:h2:mem:h2db";
private static String sourceURL2 = "jdbc:h2:tcp://192.168.20.141:8082/mem:h2db";
private String user = "shorturl";
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(sourceURL1,user, password);
Statement stat = conn.createStatement();
// insert data
stat.execute("CREATE MEMORY Table TEST(NAME VARCHAR)");
stat.execute("INSERT INTO TEST VALUES('Hello World')");
//stat.execute("delete mappedURL");
// 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 void useH2i() {
try {
Class.forName("org.h2.Driver");
//Connection conn = DriverManager.getConnection("jdbc:h2:" + dbDir+";AUTO_SERVER=TRUE;MVCC=TRUE",user, password);
Connection conn = DriverManager.getConnection(sourceURL2,user, password);
Statement stat = conn.createStatement();
// use data
ResultSet result = stat.executeQuery("select name from test");
⑸ H2 Database 這個資料庫能用到真正的大型項目 生產環境嗎 , 一般java項目用到的內存資料庫用哪個呢
用來緩存消息的內存資料庫或Cache,需要滿足:
1.能快速方便的進行消息的查詢
2.能支持分布式 (網路模式)
3.能支持集群 (單點失效和負載均衡)
4. 支持持久化(自身能持久化, 不需要我們額外的開發)
SQLLite和Derby ,不過不是很確定這兩者是否都支撐集群,其他都支持,Derby是用純java寫的,集成在JDK6的安裝當中,現在叫JavaDB
⑹ 什麼是H2資料庫
H2是Thomas Mueller提供的一個開源的、純java實現的關系資料庫。
H2是一個開源的嵌入式資料庫引擎,採用java語言編寫,不受平台的限制,同時H2提供了一個十分方便的web控制台用於操作和管理資料庫內容。H2還提供兼容模式,可以兼容一些主流的資料庫,因此採用H2作為開發期的資料庫非常方便。
H2最大的用途在於可以同應用程序打包在一起發布,這樣可以非常方便地存儲少量結構化數據。
它的另一個用途是用於單元測試。啟動速度快,而且可以關閉持久化功能,每一個用例執行完隨即還原到初始狀態。
H2的第三個用處是作為緩存,作為NoSQL的一個補充。當某些場景下數據模型必須為關系型,可以拿它當Memcached使,作為後端MySQL/Oracle的一個緩沖層,緩存一些不經常變化但需要頻繁訪問的數據,比如字典表、許可權表。不過這樣系統架構就會比較復雜了。
(6)javah2內存資料庫擴展閱讀:
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創建資料庫語句
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控制台實在好用多了。