1 5 package org.h2.test.cases; 6 7 import java.math.BigDecimal ; 8 import java.sql.Connection ; 9 import java.sql.DriverManager ; 10 import java.sql.PreparedStatement ; 11 import java.sql.ResultSet ; 12 import java.sql.SQLException ; 13 import java.sql.Statement ; 14 15 20 public class TestKiller { 21 22 public static void main(String [] args) throws Exception { 23 testWith("org.h2.Driver", "jdbc:h2:test", "sa", "sa"); 24 testWith("org.postgresql.Driver", "jdbc:postgresql:jpox2", "sa", "sa"); 25 testWith("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/test", "sa", "sa"); 26 testWith("org.hsqldb.jdbcDriver", "jdbc:hsqldb:test", "sa", ""); 27 testWith("org.apache.derby.jdbc.EmbeddedDriver", "jdbc:derby:test3;create=true", "sa", "sa"); 28 } 29 30 public static class TestBigDecimal extends BigDecimal { 31 public TestBigDecimal(String s) { 32 super(s); 33 } 34 private static final long serialVersionUID = 6309132662083006892L; 35 public int compareTo(BigDecimal obj) { 36 return -super.compareTo(obj); 37 } 38 public String toString() { 39 throw new NullPointerException (); 40 } 41 } 42 43 static void testWith(String driver, String url, String user, String password) 44 throws Exception { 45 Class.forName(driver); 46 System.out.println("URL: " + url); 47 Connection conn = DriverManager.getConnection(url, user, password); 48 49 try { 50 Statement stmt = conn.createStatement(); 51 try { 52 conn.createStatement().execute("DROP TABLE TESTTAB"); 53 } catch(SQLException e) { 54 } 56 stmt.execute("CREATE TABLE TESTTAB(VL DECIMAL(16,6) PRIMARY KEY)"); 57 stmt.close(); 58 PreparedStatement pstmt = conn.prepareStatement("INSERT INTO TESTTAB VALUES (?)"); 59 pstmt.setBigDecimal(1, new TestBigDecimal("1")); 60 pstmt.execute(); 61 pstmt.setBigDecimal(1, new TestBigDecimal("2")); 62 pstmt.execute(); 63 pstmt.setBigDecimal(1, new TestBigDecimal("3")); 64 pstmt.execute(); 65 pstmt.close(); 66 ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM TESTTAB ORDER BY VL"); 67 while(rs.next()) { 68 System.out.println("VL:" + rs.getString("VL")); 69 } 70 try { 71 conn.createStatement().executeQuery("SHUTDOWN"); 72 } catch(SQLException e) { 73 } 75 conn.close(); 76 Class.forName(driver); 77 78 conn = DriverManager.getConnection(url, user, password); 79 rs = conn.createStatement().executeQuery("SELECT * FROM TESTTAB ORDER BY VL"); 80 while(rs.next()) { 81 System.out.println("VL:" + rs.getString("VL")); 82 } 83 conn.close(); 84 } catch(Throwable t) { 85 t.printStackTrace(); 86 } finally { 87 if(conn != null) { 88 conn.close(); 89 } 90 } 91 } 92 } 93 | Popular Tags |