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==")
}
}
1、h2数据库你写一个dao类(例如:insert方法),mysql也写一个mydao类(例如:insertmysql()),当往h2数据库执行插入的时候 new dao().inser(sql)
new mydao().insertmysql(sql)
2、也可以直接到数据库操作写存储过程和游标自动同步。
3、使用第三方插件。有很多这样子的平台做企业数据一体化的
package com.gg.daoimport java.sql.Connection
import java.sql.DriverManager
import java.sql.PreparedStatement
import java.sql.ResultSet
import java.sql.SQLExceptionpublic class BaseDao {
private final String DRIVER = "org.h2.Driver"
private final String URL = "jdbc:h2:~/test"
private final String USER = "sa"
private final String PASS = ""
protected Connection conn = null// 数据库连接对象
@SuppressWarnings("unused")
protected PreparedStatement ps = null// 数据库执行对象
@SuppressWarnings("unused")
protected ResultSet rs = null// 数据库临时结果集 /**
* 获取数据库连接Connection对象
*
* @return
*/
@SuppressWarnings("unused")
protected Connection getConn() {
try {
Class.forName(DRIVER)
conn = DriverManager.getConnection(URL, USER, PASS)
if (conn != null)
return conn
} catch (Exception e) {
e.printStackTrace()
}
return null
} /**
* 关闭动态连接
*
* @param conn
* @param ps
*/
@SuppressWarnings("unused")
protected void closeLink(Connection conn, PreparedStatement ps) {
if (conn != null)
try {
conn.close()
} catch (SQLException e) {
e.printStackTrace()
}
if (ps != null)
try {
ps.close()
} catch (SQLException e) {
e.printStackTrace()
}
} /**
* 关闭动态连接(重载方法)
*
* @param conn
* @param ps
* @param rs
*/
@SuppressWarnings("unused")
protected void closeLink(Connection conn, PreparedStatement ps, ResultSet rs) {
if (conn != null)
try {
conn.close()
} catch (SQLException e) {
e.printStackTrace()
}
if (ps != null)
try {
ps.close()
} catch (SQLException e) {
e.printStackTrace()
}
if (rs != null)
try {
rs.close()
} catch (SQLException e) {
e.printStackTrace()
}
} // protected boolean insertDelete(String sql) {
// try {
// ps = this.getConn().prepareStatement(sql)
// if (ps != null)
// return ps.execute()
// } catch (SQLException e) {
// e.printStackTrace()
// } finally {
// this.closeLink(conn, ps)
// }
// return false
// }
//
// static public void main(String[] args) {
// BaseDao b = new BaseDao()
// System.out.println(b.insertDelete("create table AAA(Id int primary key,name varchar,sex varchar age int)"))
// }}