basic.java
上传用户:psq1974
上传日期:2007-01-06
资源大小:1195k
文件大小:6k
源码类别:

mpeg/mp3

开发平台:

C/C++

  1. package example;
  2. import java.io.*;
  3. import java.sql.*;
  4. import java.text.*;
  5. /**
  6.  * This example tests the basic components of the JDBC driver, and shows
  7.  * how even the simplest of queries can be implemented.
  8.  *
  9.  * To use this example, you need a database to be in existence. This example
  10.  * will create a table called basic.
  11.  *
  12.  */
  13. public class basic
  14. {
  15.   Connection db; // The connection to the database
  16.   Statement  st; // Our statement to run queries with
  17.   
  18.   public basic(String args[]) throws ClassNotFoundException, FileNotFoundException, IOException, SQLException
  19.   {
  20.     String url = args[0];
  21.     String usr = args[1];
  22.     String pwd = args[2];
  23.     
  24.     // Load the driver
  25.     Class.forName("postgresql.Driver");
  26.     
  27.     // Connect to database
  28.     System.out.println("Connecting to Database URL = " + url);
  29.     db = DriverManager.getConnection(url, usr, pwd);
  30.     
  31.     System.out.println("Connected...Now creating a statement");
  32.     st = db.createStatement();
  33.     
  34.     // Clean up the database (in case we failed earlier) then initialise
  35.     cleanup();
  36.     
  37.     // Now run tests using JDBC methods
  38.     doexample();
  39.     
  40.     // Clean up the database
  41.     cleanup();
  42.     
  43.     // Finally close the database
  44.     System.out.println("Now closing the connection");
  45.     st.close();
  46.     db.close();
  47.     
  48.   }
  49.   
  50.   /**
  51.    * This drops the table (if it existed). No errors are reported.
  52.    */
  53.   public void cleanup()
  54.   {
  55.     try {
  56.       st.executeUpdate("drop table basic");
  57.     } catch(Exception ex) {
  58.       // We ignore any errors here
  59.     }
  60.   }
  61.   
  62.   /**
  63.    * This performs the example
  64.    */
  65.   public void doexample() throws SQLException
  66.   {
  67.     System.out.println("nRunning tests:");
  68.     
  69.     // First we need a table to store data in
  70.     st.executeUpdate("create table basic (a int2, b int2)");
  71.     
  72.     // Now insert some data, using the Statement
  73.     st.executeUpdate("insert into basic values (1,1)");
  74.     st.executeUpdate("insert into basic values (2,1)");
  75.     st.executeUpdate("insert into basic values (3,1)");
  76.     
  77.     // For large inserts, a PreparedStatement is more efficient, because it
  78.     // supports the idea of precompiling the SQL statement, and to store
  79.     // directly, a Java object into any column. PostgreSQL doesnt support
  80.     // precompiling, but does support setting a column to the value of a
  81.     // Java object (like Date, String, etc).
  82.     //
  83.     // Also, this is the only way of writing dates in a datestyle independent
  84.     // manner. (DateStyles are PostgreSQL's way of handling different methods
  85.     // of representing dates in the Date data type.)
  86.     PreparedStatement ps = db.prepareStatement("insert into basic values (?,?)");
  87.     for(int i=2;i<5;i++) {
  88.       ps.setInt(1,4); // "column a" = 5
  89.       ps.setInt(2,i); // "column b" = i
  90.       ps.executeUpdate(); // executeUpdate because insert returns no data
  91.     }
  92.     ps.close(); // Always close when we are done with it
  93.     
  94.     // Finally perform a query on the table
  95.     System.out.println("performing a query");
  96.     ResultSet rs = st.executeQuery("select a, b from basic");
  97.     if(rs!=null) {
  98.       // Now we run through the result set, printing out the result.
  99.       // Note, we must call .next() before attempting to read any results
  100.       while(rs.next()) {
  101. int a = rs.getInt("a"); // This shows how to get the value by name
  102. int b = rs.getInt(2); // This shows how to get the value by column
  103. System.out.println("  a="+a+" b="+b);
  104.       }
  105.       rs.close(); // again, you must close the result when done
  106.     }
  107.     
  108.     // Now run the query again, showing a more efficient way of getting the
  109.     // result if you don't know what column number a value is in
  110.     System.out.println("performing another query");
  111.     rs = st.executeQuery("select * from basic where b>1");
  112.     if(rs!=null) {
  113.       // First find out the column numbers.
  114.       //
  115.       // It's best to do this here, as calling the methods with the column
  116.       // numbers actually performs this call each time they are called. This
  117.       // really speeds things up on large queries.
  118.       //
  119.       int col_a = rs.findColumn("a");
  120.       int col_b = rs.findColumn("b");
  121.       
  122.       // Now we run through the result set, printing out the result.
  123.       // Again, we must call .next() before attempting to read any results
  124.       while(rs.next()) {
  125. int a = rs.getInt(col_a); // This shows how to get the value by name
  126. int b = rs.getInt(col_b); // This shows how to get the value by column
  127. System.out.println("  a="+a+" b="+b);
  128.       }
  129.       rs.close(); // again, you must close the result when done
  130.     }
  131.     
  132.     // The last thing to do is to drop the table. This is done in the
  133.     // cleanup() method.
  134.   }
  135.   
  136.   /**
  137.    * Display some instructions on how to run the example
  138.    */
  139.   public static void instructions()
  140.   {
  141.     System.out.println("nThis example tests the basic components of the JDBC driver, demonstratingnhow to build simple queries in java.n");
  142.     System.out.println("Useage:n java example.basic jdbc:postgresql:database user password [debug]nnThe debug field can be anything. It's presence will enable DriverManager'sndebug trace. Unless you want to see screens of items, don't put anything innhere.");
  143.     System.exit(1);
  144.   }
  145.   
  146.   /**
  147.    * This little lot starts the test
  148.    */
  149.   public static void main(String args[])
  150.   {
  151.     System.out.println("PostgreSQL basic test v6.3 rev 1n");
  152.     
  153.     if(args.length<3)
  154.       instructions();
  155.     
  156.     // This line outputs debug information to stderr. To enable this, simply
  157.     // add an extra parameter to the command line
  158.     if(args.length>3)
  159.       DriverManager.setLogStream(System.err);
  160.     
  161.     // Now run the tests
  162.     try {
  163.       basic test = new basic(args);
  164.     } catch(Exception ex) {
  165.       System.err.println("Exception caught.n"+ex);
  166.       ex.printStackTrace();
  167.     }
  168.   }
  169. }