如何用Java程序启动H2数据库(完整代码)?

Python016

如何用Java程序启动H2数据库(完整代码)?,第1张

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==")

}

}

1、h2数据库你写一个dao类(例如:insert方法),mysql也写一个mydao类(例如:insertmysql()),

当往h2数据库执行插入的时候 new dao().inser(sql)

new mydao().insertmysql(sql)

2、也可以直接到数据库操作写存储过程和游标自动同步。

3、使用第三方插件。有很多这样子的平台做企业数据一体化的

package com.gg.dao

import 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)"))

// }}