H2 使用

来源:互联网 发布:乐高ev3机器人编程 编辑:程序博客网 时间:2024/04/28 07:54

项目中添加jar:h2-1.0.20070617.jar

 

实例一:

[java] view plaincopy
  1. import java.sql.Connection;  
  2. import java.sql.DriverManager;  
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.sql.Statement;  
  6. import org.h2.tools.Server;  
  7. public class H2Demo {  
  8.     private Server server;  
  9.     private String port = "9080";  
  10.     private String dbDir = "./h2db/sample";  
  11.     private String user = "sa";  
  12.     private String password = "";  
  13.     public void startServer() {  
  14.         try {  
  15.             System.out.println("正在启动h2...");  
  16.             server = Server.createTcpServer(new String[] { "-tcpPort", port })  
  17.                     .start();  
  18.         } catch (SQLException e) {  
  19.             System.out.println("启动h2出错:" + e.toString());  
  20.             e.printStackTrace();  
  21.             throw new RuntimeException(e);  
  22.         }  
  23.     }  
  24.     public void stopServer() {  
  25.         if (server != null) {  
  26.             System.out.println("正在关闭h2...");  
  27.             server.stop();  
  28.             System.out.println("关闭成功.");  
  29.         }  
  30.     }  
  31.     public void useH2() {  
  32.         try {  
  33.             Class.forName("org.h2.Driver");  
  34.             Connection conn = DriverManager.getConnection("jdbc:h2:" + dbDir,  
  35.                     user, password);  
  36.             Statement stat = conn.createStatement();  
  37.             // insert data  
  38.             //stat.execute("DROP TABLE IF EXISTS TEST");  
  39.             stat.execute("CREATE TABLE TEST(NAME VARCHAR)");  
  40.             stat.execute("INSERT INTO TEST VALUES('Hello World')");  
  41.             // use data  
  42.             ResultSet result = stat.executeQuery("select name from test ");  
  43.             int i = 1;  
  44.             while (result.next()) {  
  45.                 System.out.println(i++ + ":" + result.getString("name"));  
  46.             }  
  47.             result.close();  
  48.             stat.close();  
  49.             conn.close();  
  50.         } catch (Exception e) {  
  51.             e.printStackTrace();  
  52.         }  
  53.     }  
  54.     public static void main(String[] args) {  
  55.         H2Demo h2 = new H2Demo();  
  56.         h2.startServer();  
  57.         h2.useH2();  
  58.         h2.stopServer();  
  59.         System.out.println("==END==");  
  60.     }  
  61. }  
 

 

实例二:

[java] view plaincopy
  1. import java.sql.*;  
  2. public class MenTest {  
  3.     public void runInsertDelete() {  
  4.         try {  
  5.             String sourceURL = "jdbc:h2:./h2db/sample";// H2DB  
  6.                                                                         // mem  
  7.                                                                         // mode  
  8.             String user = "sa";  
  9.             String key = "";  
  10.             try {  
  11.                 Class.forName("org.h2.Driver");// HSQLDB Driver  
  12.             } catch (Exception e) {  
  13.                 e.printStackTrace();  
  14.             }  
  15.             Connection conn = DriverManager.getConnection(sourceURL, user, key);// 把驱动放入连接  
  16.             Statement stmt = conn.createStatement();  
  17.             // 创建一个 Statement 对象来将 SQL 语句发送到数据库。  
  18.             // stmt.executeUpdate("DELETE FROM mytable WHERE name=/'NO.2/'");  
  19.             // 执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法。  
  20.             // stmt.execute("CREATE TABLE idtable(id INT,name VARCHAR(100));");  
  21.             stmt.execute("INSERT INTO test VALUES('MuSoft')");  
  22.             stmt.execute("INSERT INTO test VALUES('StevenStander')");  
  23.             stmt.close();  
  24.             conn.close();  
  25.         } catch (SQLException sqle) {  
  26.             System.out.println("SQL ERROR!");  
  27.         }  
  28.     }  
  29.     public void query(String SQL) {  
  30.         try {  
  31.             String sourceURL = "jdbc:h2:./h2db/sample";  
  32.             String user = "sa";  
  33.             String key = "";  
  34.             try {  
  35.                 Class.forName("org.h2.Driver");  
  36.             } catch (Exception e) {  
  37.                 e.printStackTrace();  
  38.             }  
  39.             Connection conn = DriverManager.getConnection(sourceURL, user, key);// 把驱动放入连接  
  40.             Statement stmt = conn.createStatement();// 创建一个 Statement 对象来将 SQL  
  41.                                                     // 语句发送到数据库。  
  42.             ResultSet rset = stmt.executeQuery(SQL);// 执行方法找到一个与 methodName  
  43.                                                     // 属性同名的方法,并在目标上调用该方法。  
  44.             while (rset.next()) {  
  45.                 System.out.println("  " + rset.getString("name"));  
  46.             }  
  47.             rset.close();  
  48.             stmt.close();  
  49.             conn.close();  
  50.         } catch (SQLException sqle) {  
  51.             System.err.println(sqle);  
  52.         }  
  53.     }  
  54.     public static void main(String[] args) {  
  55.         MenTest mt = new MenTest();  
  56.         mt.runInsertDelete();  
  57.         mt.query("SELECT * FROM test");  
  58.     }  
  59. }  
 

 

实例三:

 

[java] view plaincopy
  1. import java.sql.*;  
  2. public class UpdateTest {  
  3.     public void runInsertDelete() {  
  4.         try {  
  5.             String sourceURL = "jdbc:h2:./h2db/sample";// H2 database  
  6.             String user = "sa";  
  7.             String key = "";  
  8.             try {  
  9.                 Class.forName("org.h2.Driver");// H2 Driver  
  10.             } catch (Exception e) {  
  11.                 e.printStackTrace();  
  12.             }  
  13.             Connection conn = DriverManager.getConnection(sourceURL, user, key);  
  14.             Statement stmt = conn.createStatement();  
  15.             stmt.execute("DROP TABLE if EXISTS mytable");  
  16.             stmt.execute("CREATE TABLE mytable(name VARCHAR(100),sex VARCHAR(10))");  
  17.             stmt.executeUpdate("INSERT INTO mytable VALUES('Steven Stander','male')");  
  18.             stmt.executeUpdate("INSERT INTO mytable VALUES('Elizabeth Eames','female')");  
  19.             stmt.executeUpdate("DELETE FROM mytable WHERE sex='male'");  
  20.             ResultSet rset = stmt.executeQuery("select name,sex from mytable");  
  21.             while (rset.next()) {  
  22.                 System.out.println(rset.getString("name") + "  "  
  23.                         + rset.getString("sex"));  
  24.             }  
  25.             rset.close();  
  26.             stmt.close();  
  27.             conn.close();  
  28.         } catch (SQLException sqle) {  
  29.             System.err.println(sqle);  
  30.         }  
  31.     }  
  32.     public static void main(String[] args) {  
  33.         new UpdateTest().runInsertDelete();  
  34.     }  
  35. }  
 

 

实例四:

 

[java] view plaincopy
  1. import java.sql.*;   
  2. public class SelectTest {  
  3.     public void query(String SQL) {    
  4.         try {    
  5.             //  
  6.             //String sourceURL = "jdbc:h2:h2/bin/mydb";  
  7.             String sourceURL = "jdbc:h2:./h2db/sample";    
  8.             String user = "sa";    
  9.             String key = "";    
  10.     
  11.             try {    
  12.                 Class.forName("org.h2.Driver");    
  13.             } catch (Exception e) {    
  14.                 e.printStackTrace();    
  15.             }    
  16.             Connection conn = DriverManager.getConnection(sourceURL, user, key);    
  17.             Statement stmt = conn.createStatement();    
  18.             ResultSet rset = stmt.executeQuery(SQL);    
  19.             while (rset.next()) {    
  20.                 System.out.println(rset.getString("name")+ "  ");    
  21.             }    
  22.             rset.close();    
  23.             stmt.close();    
  24.             conn.close();    
  25.         } catch (SQLException sqle) {    
  26.             System.err.println(sqle);    
  27.         }    
  28.     }    
  29.     
  30.     public static void main(String[] args) {  
  31.         SelectTest tt = new SelectTest();    
  32.         tt.query("select * from test");    
  33.     }  
  34. }  
 

 

 

实例五:

 

[java] view plaincopy
  1. import java.sql.Connection;  
  2. import java.sql.DriverManager;  
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.sql.Statement;  
  6. import org.h2.tools.Server;  
  7. public class MixedMode {  
  8.     public static void main(String[] args) throws Exception {  
  9.         Server server = Server.createTcpServer(new String[] { "-tcpPort",  
  10.                 "9080" });  
  11.         server.start();  
  12.         Class.forName("org.h2.Driver");  
  13.         Connection conn = DriverManager.getConnection("jdbc:h2:./h2db/sample",  
  14.                 "sa""");  
  15.         Statement stat = conn.createStatement();  
  16.         // stat.execute("DROP TABLE TIMER IF EXISTS");  
  17.         // stat.execute("CREATE TABLE TIMER(ID INT PRIMARY KEY, TIME VARCHAR)");  
  18.         System.out.println("Execute this a few times: SELECT TIME FROM TIMER");  
  19.         try {  
  20.             stat.execute("MERGE INTO TIMER VALUES(1, NOW())");  
  21.             ResultSet rset = stat.executeQuery("select id,TIME from TIMER");  
  22.             while (rset.next()) {  
  23.                 System.out.println(rset.getString("id") + "  "  
  24.                         + rset.getString("time"));  
  25.             }  
  26.             rset.close();  
  27.             Thread.sleep(10);  
  28.         } catch (SQLException e) {  
  29.             System.out.println("Error:" + e.toString());  
  30.         }  
  31.         stat.close();  
  32.         conn.close();  
  33.         server.stop();  
  34.     }  
  35. }  

0 0
原创粉丝点击