项目中添加jar:h2-1.0.20070617.jar 实例一: 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 = "9080"; private String dbDir = "./h2db/sample"; private String user = "sa"; private String password = ""; 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()); 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("DROP TABLE IF EXISTS TEST"); 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) { e.printStackTrace(); } } public static void main(String[] args) { H2Demo h2 = new H2Demo(); h2.startServer(); h2.useH2(); h2.stopServer(); System.out.println("==END=="); } } 实例二: import java.sql.*; public class MenTest { public void runInsertDelete() { try { String sourceURL = "jdbc:h2:./h2db/sample";// H2DB // mem // mode String user = "sa"; String key = ""; try { Class.forName("org.h2.Driver");// HSQLDB Driver } catch (Exception e) { e.printStackTrace(); } Connection conn = DriverManager.getConnection(sourceURL, user, key);// 把驱动放入连接 Statement stmt = conn.createStatement(); // 创建一个 Statement 对象来将 SQL 语句发送到数据库。 // stmt.executeUpdate("DELETE FROM mytable WHERE name=/'NO.2/'"); // 执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法。 // stmt.execute("CREATE TABLE idtable(id INT,name VARCHAR(100));"); stmt.execute("INSERT INTO test VALUES('MuSoft')"); stmt.execute("INSERT INTO test VALUES('StevenStander')"); stmt.close(); conn.close(); } catch (SQLException sqle) { System.out.println("SQL ERROR!"); } } public void query(String SQL) { try { String sourceURL = "jdbc:h2:./h2db/sample"; String user = "sa"; String key = ""; try { Class.forName("org.h2.Driver"); } catch (Exception e) { e.printStackTrace(); } Connection conn = DriverManager.getConnection(sourceURL, user, key);// 把驱动放入连接 Statement stmt = conn.createStatement();// 创建一个 Statement 对象来将 SQL // 语句发送到数据库。 ResultSet rset = stmt.executeQuery(SQL);// 执行方法找到一个与 methodName // 属性同名的方法,并在目标上调用该方法。 while (rset.next()) { System.out.println(" " + rset.getString("name")); } rset.close(); stmt.close(); conn.close(); } catch (SQLException sqle) { System.err.println(sqle); } } public static void main(String[] args) { MenTest mt = new MenTest(); mt.runInsertDelete(); mt.query("SELECT * FROM test"); } } 实例三: import java.sql.*; public class UpdateTest { public void runInsertDelete() { try { String sourceURL = "jdbc:h2:./h2db/sample";// H2 database String user = "sa"; String key = ""; try { Class.forName("org.h2.Driver");// H2 Driver } catch (Exception e) { e.printStackTrace(); } Connection conn = DriverManager.getConnection(sourceURL, user, key); Statement stmt = conn.createStatement(); stmt.execute("DROP TABLE if EXISTS mytable"); stmt.execute("CREATE TABLE mytable(name VARCHAR(100),sex VARCHAR(10))"); stmt.executeUpdate("INSERT INTO mytable VALUES('Steven Stander','male')"); stmt.executeUpdate("INSERT INTO mytable VALUES('Elizabeth Eames','female')"); stmt.executeUpdate("DELETE FROM mytable WHERE sex='male'"); ResultSet rset = stmt.executeQuery("select name,sex from mytable"); while (rset.next()) { System.out.println(rset.getString("name") + " " + rset.getString("sex")); } rset.close(); stmt.close(); conn.close(); } catch (SQLException sqle) { System.err.println(sqle); } } public static void main(String[] args) { new UpdateTest().runInsertDelete(); } } 实例四: import java.sql.*; public class SelectTest { public void query(String SQL) { try { // //String sourceURL = "jdbc:h2:h2/bin/mydb"; String sourceURL = "jdbc:h2:./h2db/sample"; String user = "sa"; String key = ""; try { Class.forName("org.h2.Driver"); } catch (Exception e) { e.printStackTrace(); } Connection conn = DriverManager.getConnection(sourceURL, user, key); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery(SQL); while (rset.next()) { System.out.println(rset.getString("name")+ " "); } rset.close(); stmt.close(); conn.close(); } catch (SQLException sqle) { System.err.println(sqle); } } public static void main(String[] args) { SelectTest tt = new SelectTest(); tt.query("select * from 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 MixedMode { public static void main(String[] args) throws Exception { Server server = Server.createTcpServer(new String[] { "-tcpPort", "9080" }); server.start(); Class.forName("org.h2.Driver"); Connection conn = DriverManager.getConnection("jdbc:h2:./h2db/sample", "sa", ""); Statement stat = conn.createStatement(); // stat.execute("DROP TABLE TIMER IF EXISTS"); // stat.execute("CREATE TABLE TIMER(ID INT PRIMARY KEY, TIME VARCHAR)"); System.out.println("Execute this a few times: SELECT TIME FROM TIMER"); try { stat.execute("MERGE INTO TIMER VALUES(1, NOW())"); ResultSet rset = stat.executeQuery("select id,TIME from TIMER"); while (rset.next()) { System.out.println(rset.getString("id") + " " + rset.getString("time")); } rset.close(); Thread.sleep(10); } catch (SQLException e) { System.out.println("Error:" + e.toString()); } stat.close(); conn.close(); server.stop(); } }