1 5 package org.h2.test.cases; 6 7 import java.sql.*; 8 import java.util.Random ; 9 10 public class TestCloseDelay { 11 12 private Connection conn; 13 14 public static void main(String [] args) throws Exception { 15 new TestCloseDelay().test(); 16 new TestCloseDelay().test(); 17 } 18 19 public void test() throws Exception { 20 Class.forName("org.h2.Driver"); 21 conn = DriverManager.getConnection("jdbc:h2:test;DB_CLOSE_DELAY=-1"); 22 Statement stat; 23 stat = conn.createStatement(); 24 conn.setAutoCommit(false); 25 stat.execute("DROP TABLE TEST IF EXISTS"); 26 stat.execute("CREATE TABLE TEST(ID IDENTITY, NAME VARCHAR)"); 27 Random random = new Random (); 28 for(int j=0; j<100; j++) { 29 System.out.println("j:" + j); 30 for(int i=0; i<1000; i++) { 31 switch(random.nextInt(10)) { 32 case 0: 33 conn.close(); 34 conn = DriverManager.getConnection("jdbc:h2:test;DB_CLOSE_DELAY=-1"); 35 stat = conn.createStatement(); 36 conn.setAutoCommit(false); 37 break; 38 case 1: 39 case 2: 40 case 3: 41 case 4: 42 case 5: 43 case 6: 44 stat.execute("INSERT INTO TEST(NAME) VALUES('Hello')"); 45 break; 46 case 7: 47 case 8: 48 case 9: 49 stat.execute("UPDATE TEST SET NAME='Hello World' WHERE ROWNUM < 10"); 50 break; 51 } 52 if((i% 100) == 0) { 53 ResultSet rs = stat.executeQuery("SELECT * FROM TEST ORDER BY ID"); 54 while(rs.next()) { 55 rs.getInt(1); 56 rs.getString(2); 57 } 58 } 59 } 60 stat.execute("SHUTDOWN"); 61 conn.close(); 62 conn = DriverManager.getConnection("jdbc:h2:test;DB_CLOSE_DELAY=-1"); 63 stat = conn.createStatement(); 64 ResultSet rs = stat.executeQuery("SELECT * FROM TEST ORDER BY ID"); 65 while(rs.next()) { 66 rs.getInt(1); 67 rs.getString(2); 68 } 69 } 70 } 71 72 } 73 | Popular Tags |