aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/JDBC_Test.java
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1997-11-07 21:07:48 +0000
committerBruce Momjian <bruce@momjian.us>1997-11-07 21:07:48 +0000
commit5af43965cf30f4a0844cca384170a44c7acc6176 (patch)
treea2e523dbe97f7bb221a4db96df6ccc97c05a886c /src/interfaces/jdbc/JDBC_Test.java
parentc17fa36d3c5f819591707c49fccd991b737a89eb (diff)
downloadpostgresql-5af43965cf30f4a0844cca384170a44c7acc6176.tar.gz
postgresql-5af43965cf30f4a0844cca384170a44c7acc6176.zip
Update of Java driver from Peter Mount.
Diffstat (limited to 'src/interfaces/jdbc/JDBC_Test.java')
-rw-r--r--src/interfaces/jdbc/JDBC_Test.java138
1 files changed, 101 insertions, 37 deletions
diff --git a/src/interfaces/jdbc/JDBC_Test.java b/src/interfaces/jdbc/JDBC_Test.java
index 2453e4ca949..c546469358b 100644
--- a/src/interfaces/jdbc/JDBC_Test.java
+++ b/src/interfaces/jdbc/JDBC_Test.java
@@ -10,16 +10,21 @@ class JDBC_Test
public static void main(String argv[])
{
+ if(argv.length<3) {
+ System.err.println("java JDBC_Test jdbc-url user password [debug]");
+ System.exit(1);
+ }
+
String url = new String(argv[0]);
String usr = new String(argv[1]);
String pwd = new String(argv[2]);
Connection db;
Statement s;
- ResultSet rs;
// This line outputs debug information to stderr. To enable this, simply
- // remove the //
- DriverManager.setLogStream(System.err);
+ // add an extra parameter to the command line
+ if(argv.length>3)
+ DriverManager.setLogStream(System.err);
// Load the driver
try {
@@ -31,12 +36,15 @@ class JDBC_Test
// Lets do a few things -- it doesn't do everything, but
// it tests out basic functionality
try {
+ //----------------------------------------
+ // Connect to database
System.out.println("Connecting to Database URL = " + url);
db = DriverManager.getConnection(url, usr, pwd);
System.out.println("Connected...Now creating a statement");
s = db.createStatement();
- // test Date & Warnings
+ //----------------------------------------
+ // test DateStyle & Warnings
System.out.println("Ok... now set European date style");
s.executeUpdate("set datestyle='european'");
@@ -49,59 +57,115 @@ class JDBC_Test
}
db.clearWarnings();
+ //----------------------------------------
+ // Creating a table
System.out.println("Ok...now we will create a table");
s.executeUpdate("create table test (a int2, b int2,c timestamp,d date)");
+ //----------------------------------------
+ // Simple inserts
System.out.println("Now we will insert some columns");
s.executeUpdate("insert into test values (1, 1,'now','now')");
s.executeUpdate("insert into test values (2, 1,'now','01-11-1997')"); // As we are in european, this should mean 1 November 1997
s.executeUpdate("insert into test values (3, 1,'now','11-01-1997')"); // As we are in european, this should mean 11 January 1997
System.out.println("Inserted some data");
+ //----------------------------------------
+ // Now a select (see seperate method at end)
System.out.println("Now lets try a select");
- rs = s.executeQuery("select a, b,c,d from test");
- System.out.println("Back from the select...the following are results");
- System.out.println("row a b c d 'd as string'");
- int i = 0;
- while (rs.next())
- {
- int a = rs.getInt("a"); // Example of retriving by column name
- int b = rs.getInt("b");
- Timestamp c = rs.getTimestamp(3); // Example of by column number
- java.sql.Date d = rs.getDate(4); // Note, java.sql.Date here
- System.out.println("row " + i + " " + a + " " + b + " " + c + " " + d + " '"+rs.getString(4)+"'");
- i++;
- }
+ select(s,"");
- // This is a bug at the moment... when you use set datestyle
- // it must be followed by show datestyle
- System.out.println("Now switch to US date format");
- s.executeUpdate("set datestyle='US'");
- s.executeUpdate("show datestyle");
-
- System.out.println("Now lets try a select");
- rs = s.executeQuery("select a, b,c,d from test");
- System.out.println("Back from the select...the following are results");
- //int i = 0;
- System.out.println("row a b c d 'd as string'");
- while (rs.next())
- {
- int a = rs.getInt("a"); // Example of retriving by column name
- int b = rs.getInt("b");
- Timestamp c = rs.getTimestamp(3); // Example of by column number
- java.sql.Date d = rs.getDate(4); // Note, java.sql.Date here
- System.out.println("row " + i + " " + a + " " + b + " " + c + " " + d + " '"+rs.getString(4)+"'");
- i++;
- }
+ //----------------------------------------
+ // Now run some tests
+ runTests(db,s);
+ //----------------------------------------
+ // Dropping a table
System.out.println("Ok...dropping the table");
s.executeUpdate("drop table test");
+ //----------------------------------------
+ // Closing the connection
System.out.println("Now closing the connection");
s.close();
db.close();
+
+ //----------------------------------------
} catch (SQLException e) {
System.out.println("Exception: " + e.toString());
}
}
+
+ /**
+ * This performs some tests - not really part of an example, hence
+ * they are in a seperate method.
+ */
+ public static void runTests(Connection db, Statement s) throws SQLException
+ {
+ //----------------------------------------
+ // This is a bug at the moment... when you use set datestyle
+ // it must be followed by show datestyle
+ System.out.println("Now switch to US date format");
+ s.executeUpdate("set datestyle='US'");
+ s.executeUpdate("show datestyle");
+
+ System.out.println("Now lets try a select");
+ select(s,"");
+
+ //----------------------------------------
+ // Inserting dates using PreparedStatement
+ System.out.println("Ok, now a test using PreparedStatement");
+ Date dt = new Date(97,11,1);
+ PreparedStatement ps = db.prepareStatement("insert into test values (?,?,'now',?)");
+
+ // first insert in US style
+ s.executeUpdate("set datestyle='US'");
+ s.executeUpdate("show datestyle");
+ ps.setInt(1,8);
+ ps.setInt(2,8);
+ ps.setDate(3,dt);
+ ps.executeUpdate();
+
+ // second insert in European style
+ s.executeUpdate("set datestyle='european'");
+ s.executeUpdate("show datestyle");
+ ps.setInt(1,9);
+ ps.setInt(2,9);
+ ps.setDate(3,dt);
+ ps.executeUpdate();
+
+ System.out.println("Now run the select again - first as European");
+ select(s,"where a>7");
+
+ s.executeUpdate("set datestyle='US'");
+ s.executeUpdate("show datestyle");
+ System.out.println("Then as US");
+ select(s,"where a>7");
+ }
+
+ /**
+ * This performs a select. It's seperate because the tests use it in
+ * multiple places.
+ * @param s Statement to run under
+ * @throws SQLException
+ */
+ public static void select(Statement s,String sql) throws SQLException
+ {
+ sql="select a, b,c,d from test "+sql;
+ System.out.println("\nQuery: "+sql);
+ ResultSet rs = s.executeQuery(sql);
+ System.out.println("row a b c d 'd as string'");
+ System.out.println("-------------------------------------------------------------------------------");
+ int i = 0;
+ while(rs.next()) {
+ int a = rs.getInt("a"); // Example of retriving by column name
+ int b = rs.getInt("b");
+ Timestamp c = rs.getTimestamp(3); // Example of by column number
+ java.sql.Date d = rs.getDate(4); // Note, java.sql.Date here
+ System.out.println("row " + i + " " + a + " " + b + " " + c + " " + d + " '"+rs.getString(4)+"'");
+ i++;
+ }
+ rs.close();
+ }
+
}