Java/Database SQL JDBC/SQL Insert

Материал из Java эксперт
Перейти к: навигация, поиск

Insert data

/*
Copyright 2003 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
Use of this software is authorized pursuant to the terms of the license found at
http://developer.java.sun.ru/berkeley_license.html.
Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.  
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met: 
- Redistribution of source code must retain the above copyright notice, 
this list of conditions and the following disclaimer.
- Redistribution in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of Sun Microsystems, Inc. or the names of contributors may 
be used to endorse or promote products derived from this software without
specific prior written permission.
This software is provided "AS IS," without a warranty of any kind.  
ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICORSYSTEMS, INC. ("SUN")
AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 
INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN
IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You acknowledge that this software is not designed, licensed or intended for
use in the design, construction, operation or maintenance of any nuclear
facility.

*/

/*
 * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
 * Use of this software is authorized pursuant to the terms of the license found at
 * http://developer.java.sun.ru/berkeley_license.html.
 */ 
import java.sql.*;
     
public class InsertSuppliers {
  public static void main(String args[]) {
      
    String url = "jdbc:mySubprotocol:myDataSource";
    Connection con;
    Statement stmt;
    String query = "select SUP_NAME, SUP_ID from SUPPLIERS";
  
    try {
      Class.forName("myDriver.ClassName");
  
    } catch(java.lang.ClassNotFoundException e) {
      System.err.print("ClassNotFoundException: ");
      System.err.println(e.getMessage());
    }  
  
    try {
      con = DriverManager.getConnection(url, 
                   "myLogin", "myPassword");
  
      stmt = con.createStatement();              
  
      stmt.executeUpdate("insert into SUPPLIERS " +
                   "values(49, "Superior Coffee", "1 Party Place", " +
         ""Mendocino", "CA", "95460")");
    
      stmt.executeUpdate("insert into SUPPLIERS " +
        "values(101, "Acme, Inc.", "99 Market Street", " +
        ""Groundsville", "CA", "95199")");
  
      stmt.executeUpdate("insert into SUPPLIERS " +
                   "values(150, "The High Ground", "100 Coffee Lane", " +
         ""Meadows", "CA", "93966")");
  
      ResultSet rs = stmt.executeQuery(query);
  
      System.out.println("Suppliers and their ID Numbers:");
      while (rs.next()) {
        String s = rs.getString("SUP_NAME");
        int n = rs.getInt("SUP_ID");
        System.out.println(s + "   " + n);
      }
  
      stmt.close();
      con.close();
  
    } catch(SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
    }
  }
}





Insert data 2

/*
Copyright 2003 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
Use of this software is authorized pursuant to the terms of the license found at
http://developer.java.sun.ru/berkeley_license.html.
Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.  
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met: 
- Redistribution of source code must retain the above copyright notice, 
this list of conditions and the following disclaimer.
- Redistribution in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of Sun Microsystems, Inc. or the names of contributors may 
be used to endorse or promote products derived from this software without
specific prior written permission.
This software is provided "AS IS," without a warranty of any kind.  
ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICORSYSTEMS, INC. ("SUN")
AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 
INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN
IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You acknowledge that this software is not designed, licensed or intended for
use in the design, construction, operation or maintenance of any nuclear
facility.

*/

/*
 * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
 * Use of this software is authorized pursuant to the terms of the license found at
 * http://developer.java.sun.ru/berkeley_license.html.
 */ 
import java.sql.*;
     
public class InsertCoffees {
  public static void main(String args[]) {
      
    String url = "jdbc:mySubprotocol:myDataSource";
    Connection con;
    Statement stmt;
    String query = "select COF_NAME, PRICE from COFFEES";
  
    try {
      Class.forName("myDriver.ClassName");
  
    } catch(java.lang.ClassNotFoundException e) {
      System.err.print("ClassNotFoundException: "); 
      System.err.println(e.getMessage());
    }
    try {
      con = DriverManager.getConnection(url, 
                   "myLogin", "myPassword");
  
      stmt = con.createStatement();              
  
      stmt.executeUpdate("insert into COFFEES " +
             "values("Colombian", 00101, 7.99, 0, 0)");
  
      stmt.executeUpdate("insert into COFFEES " +
             "values("French_Roast", 00049, 8.99, 0, 0)");
      
      stmt.executeUpdate("insert into COFFEES " +
             "values("Espresso", 00150, 9.99, 0, 0)");
  
      stmt.executeUpdate("insert into COFFEES " +
               "values("Colombian_Decaf", 00101, 8.99, 0, 0)");
  
      stmt.executeUpdate("insert into COFFEES " +
             "values("French_Roast_Decaf", 00049, 9.99, 0, 0)");
  
      ResultSet rs = stmt.executeQuery(query);
  
      System.out.println("Coffee Break Coffees and Prices:");
      while (rs.next()) {
        String s = rs.getString("COF_NAME");
        float f = rs.getFloat("PRICE");
        System.out.println(s + "   " + f);
      }
  
      stmt.close();
      con.close();
  
    } catch(SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
    }
  }
}





Insert Row

/*
 * Copyright (c) Ian F. Darwin, http://www.darwinsys.ru/, 1996-2002. All rights
 * reserved. Software written by Ian F. Darwin and others. $Id: LICENSE,v 1.8
 * 2004/02/09 03:33:38 ian Exp $
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer. 2. Redistributions in
 * binary form must reproduce the above copyright notice, this list of
 * conditions and the following disclaimer in the documentation and/or other
 * materials provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS"" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * Java, the Duke mascot, and all variants of Sun"s Java "steaming coffee cup"
 * logo are trademarks of Sun Microsystems. Sun"s, and James Gosling"s,
 * pioneering role in inventing and promulgating (and standardizing) the Java
 * language and environment is gratefully acknowledged.
 * 
 * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for
 * inventing predecessor languages C and C++ is also gratefully acknowledged.
 */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertRowBug {
  public static void main(String args[]) {
    String url;
    // url = "jdbc:odbc:SQL Anywhere 5.0 Sample";
    // url = "jdbc:oracle:thin:@server:1521:db570";
    url = "jdbc:odbc:RainForestDSN";
    String driver;
    //driver = "oracle.jdbc.driver.OracleDriver";
    driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String user, pass;
    user = "student";
    pass = "student";
    Connection con;
    Statement stmt;
    ResultSet uprs;
    try {
      Class.forName(driver);
    } catch (java.lang.ClassNotFoundException e) {
      System.err.println(e);
      return;
    }
    try {
      con = DriverManager.getConnection(url, user, pass);
      stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
          ResultSet.CONCUR_UPDATABLE);
      uprs = stmt.executeQuery("SELECT * FROM Music_Recordings");
      // Check the column count
      ResultSetMetaData md = uprs.getMetaData();
      System.out.println("Resultset has " + md.getColumnCount()
          + " cols.");
      int rowNum = uprs.getRow();
      System.out.println("row1 " + rowNum);
      uprs.absolute(1);
      rowNum = uprs.getRow();
      System.out.println("row2 " + rowNum);
      uprs.next();
      uprs.moveToInsertRow();
      uprs.updateInt(1, 150);
      uprs.updateString(2, "Madonna");
      uprs.updateString(3, "Dummy");
      uprs.updateString(4, "Jazz");
      uprs.updateString(5, "Image");
      uprs.updateInt(6, 5);
      uprs.updateDouble(7, 5);
      uprs.updateInt(8, 15);
      uprs.insertRow();
      uprs.close();
      stmt.close();
      con.close();
    } catch (SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
    }
  }
}





Insert Row 2

/*
Copyright 2003 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
Use of this software is authorized pursuant to the terms of the license found at
http://developer.java.sun.ru/berkeley_license.html.
Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.  
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met: 
- Redistribution of source code must retain the above copyright notice, 
this list of conditions and the following disclaimer.
- Redistribution in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of Sun Microsystems, Inc. or the names of contributors may 
be used to endorse or promote products derived from this software without
specific prior written permission.
This software is provided "AS IS," without a warranty of any kind.  
ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICORSYSTEMS, INC. ("SUN")
AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 
INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN
IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You acknowledge that this software is not designed, licensed or intended for
use in the design, construction, operation or maintenance of any nuclear
facility.

*/

/*
 * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
 * Use of this software is authorized pursuant to the terms of the license found at
 * http://developer.java.sun.ru/berkeley_license.html.
 */ 
import java.sql.*;
public class InsertRow {
  public static void main(String args[]) {
    String url = "jdbc:mySubprotocol:myDataSource";
    Connection con;
    Statement stmt;
    String query = "select COF_NAME, PRICE from COFFEES";
    try {
      Class.forName("myDriver.ClassName");
    } catch(java.lang.ClassNotFoundException e) {
      System.err.print("ClassNotFoundException: ");
      System.err.println(e.getMessage());
    }
    try {
      con = DriverManager.getConnection(url,
          "myLogin", "myPassword");
      stmt = con.createStatement(
        ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
      ResultSet uprs = stmt.executeQuery(
        "SELECT * FROM COFFEES");
      uprs.moveToInsertRow();
      uprs.updateString("COF_NAME", "Kona");
      uprs.updateInt("SUP_ID", 150);
      uprs.updateFloat("PRICE", 10.99f);
      uprs.updateInt("SALES", 0);
      uprs.updateInt("TOTAL", 0);
      uprs.insertRow();
      uprs.beforeFirst();
      System.out.println("Table COFFEES after insertion:");
      while (uprs.next()) {
        String s = uprs.getString("COF_NAME");
        int sup = uprs.getInt("SUP_ID");
        float f = uprs.getFloat("PRICE");
        int sales = uprs.getInt("SALES");
        int t = uprs.getInt("TOTAL");
        System.out.print(s + "   " + sup + "   " + f + "   ");
        System.out.println(sales + "   " + t);
      }
      uprs.close();
      stmt.close();
      con.close();
    } catch(SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
    }
  }
}





Insert rows

/*
Copyright 2003 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
Use of this software is authorized pursuant to the terms of the license found at
http://developer.java.sun.ru/berkeley_license.html.
Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.  
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met: 
- Redistribution of source code must retain the above copyright notice, 
this list of conditions and the following disclaimer.
- Redistribution in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of Sun Microsystems, Inc. or the names of contributors may 
be used to endorse or promote products derived from this software without
specific prior written permission.
This software is provided "AS IS," without a warranty of any kind.  
ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICORSYSTEMS, INC. ("SUN")
AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 
INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN
IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You acknowledge that this software is not designed, licensed or intended for
use in the design, construction, operation or maintenance of any nuclear
facility.

*/
/*
 * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
 * Use of this software is authorized pursuant to the terms of the license found at
 * http://developer.java.sun.ru/berkeley_license.html.
 */ 
import java.sql.*;
public class InsertRows {
  public static void main(String args[]) {
    String url = "jdbc:mySubprotocol:myDataSource";
    Connection con;
    Statement stmt;
    try {
      Class.forName("myDriver.ClassName");
    } catch(java.lang.ClassNotFoundException e) {
      System.err.print("ClassNotFoundException: ");
      System.err.println(e.getMessage());
    }
    try {
      con = DriverManager.getConnection(url,
                   "myLogin", "myPassword");
      stmt = con.createStatement(
        ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            ResultSet uprs = stmt.executeQuery("SELECT * FROM COFFEES");
      uprs.moveToInsertRow();
      uprs.updateString("COF_NAME", "Kona");
      uprs.updateInt("SUP_ID", 150);
      uprs.updateFloat("PRICE", 10.99f);
      uprs.updateInt("SALES", 0);
      uprs.updateInt("TOTAL", 0);
      uprs.insertRow();
      uprs.updateString("COF_NAME", "Kona_Decaf");
      uprs.updateInt("SUP_ID", 150);
      uprs.updateFloat("PRICE", 11.99f);
      uprs.updateInt("SALES", 0);
      uprs.updateInt("TOTAL", 0);
      uprs.insertRow();
      uprs.beforeFirst();
      System.out.println("Table COFFEES after insertion:");
      while (uprs.next()) {
        String name = uprs.getString("COF_NAME");
        int id = uprs.getInt("SUP_ID");
        float price = uprs.getFloat("PRICE");
        int sales = uprs.getInt("SALES");
        int total = uprs.getInt("TOTAL");
        System.out.print(name + "   " + id + "   " + price);
        System.out.println("   " + sales + "   " + total);
      }
      uprs.close();
      stmt.close();
      con.close();
    } catch(SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
    }
  }
}





Insert rows 2

/*
Copyright 2003 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
Use of this software is authorized pursuant to the terms of the license found at
http://developer.java.sun.ru/berkeley_license.html.
Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.  
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met: 
- Redistribution of source code must retain the above copyright notice, 
this list of conditions and the following disclaimer.
- Redistribution in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of Sun Microsystems, Inc. or the names of contributors may 
be used to endorse or promote products derived from this software without
specific prior written permission.
This software is provided "AS IS," without a warranty of any kind.  
ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICORSYSTEMS, INC. ("SUN")
AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 
INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN
IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You acknowledge that this software is not designed, licensed or intended for
use in the design, construction, operation or maintenance of any nuclear
facility.

*/
/*
 * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
 * Use of this software is authorized pursuant to the terms of the license found at
 * http://developer.java.sun.ru/berkeley_license.html.
 */ 
import java.sql.*;
public class InsertStores {

  public static void main(String args[]) {
        String url = "jdbc:mySubprotocol:myDataSource";
    Connection con;
    Statement stmt;
    try {
      Class.forName("myDriver.ClassName");
    } catch(java.lang.ClassNotFoundException e) {
      System.err.print("ClassNotFoundException: ");
      System.err.println(e.getMessage());
    }
    try {
      con = DriverManager.getConnection(url,
                  "myLogin", "myPassword");
      stmt = con.createStatement();
      con.setAutoCommit(false);
      String insertStore1 = "INSERT INTO STORES VALUES (" +
        "100001, " +
        "ADDRESS(888, "Main_Street", "Rancho_Alegre", " +
               ""CA", "94049"), " +
        "COF_ARRAY("Colombian", "French_Roast", "Espresso", " +
               ""Colombian_Decaf", "French_Roast_Decaf"), " +
        "(SELECT OID FROM MANAGERS WHERE MGR_ID = 000001))";
      stmt.addBatch(insertStore1);
      String insertStore2 = "INSERT INTO STORES VALUES (" +
        "100002, " +
        "ADDRESS(1560, "Alder", "Ochos_Pinos", " +
          ""CA", "94049"), " +
        "COF_ARRAY("Colombian", "French_Roast", "Espresso", " +
            ""Colombian_Decaf", "French_Roast_Decaf", " +
          ""Kona", "Kona_Decaf"), " +
        "(SELECT OID FROM MANAGERS WHERE MGR_ID = 000001))";
      stmt.addBatch(insertStore2);
      String insertStore3 = "INSERT INTO STORES VALUES (" +
        "100003, " +
        "ADDRESS(4344, "First_Street", "Verona", " +
          ""CA", "94545"), " +
        "COF_ARRAY("Colombian", "French_Roast", "Espresso", " +
            ""Colombian_Decaf", "French_Roast_Decaf", " +
          ""Kona", "Kona_Decaf"), " +
        "(SELECT OID FROM MANAGERS WHERE MGR_ID = 000002))";
      stmt.addBatch(insertStore3);
      String insertStore4 = "INSERT INTO STORES VALUES (" +
        "100004, " +
        "ADDRESS(321, "Sandy_Way", "La_Playa", " +
          ""CA", "94544"), " +
        "COF_ARRAY("Colombian", "French_Roast", "Espresso", " +
            ""Colombian_Decaf", "French_Roast_Decaf", " +
          ""Kona", "Kona_Decaf"), " +
        "(SELECT OID FROM MANAGERS WHERE MGR_ID = 000002))";
      stmt.addBatch(insertStore4);
      String insertStore5 = "INSERT INTO STORES VALUES (" +
        "100005, " +
        "ADDRESS(1000, "Clover_Road", "Happyville", " +
          ""CA", "90566"), " +
        "COF_ARRAY("Colombian", "French_Roast", "Espresso", " +
          ""Colombian_Decaf", "French_Roast_Decaf"), " +
        "(SELECT OID FROM MANAGERS WHERE MGR_ID = 000003))";
      stmt.addBatch(insertStore5);
      int [] updateCounts = stmt.executeBatch();
            ResultSet rs = stmt.executeQuery("SELECT * FROM STORES");
      System.out.println("Table STORES after insertion:");
      System.out.println("STORE_NO  LOCATION          COF_TYPE     MGR");
      while (rs.next()) {
        int storeNo = rs.getInt("STORE_NO");
        Struct location = (Struct)rs.getObject("LOCATION");
        Object[] locAttrs = location.getAttributes();
        Array coffeeTypes =  rs.getArray("COF_TYPE");
        String[] cofTypes = (String[])coffeeTypes.getArray();
        Ref managerRef = rs.getRef("MGR");
        PreparedStatement pstmt = con.prepareStatement(
          "SELECT MANAGER FROM MANAGERS WHERE OID = ?");
        pstmt.setRef(1, managerRef);
        ResultSet rs2 = pstmt.executeQuery();
        rs2.next();
        Struct manager = (Struct)rs2.getObject("MANAGER");
        Object[] manAttrs = manager.getAttributes();
        
        System.out.print(storeNo + "   ");
        System.out.print(locAttrs[0] + " " + locAttrs[1] + " " + 
          locAttrs[2] + ", " + locAttrs[3] + "  " + locAttrs[4] + " ");
        for (int i = 0; i < cofTypes.length; i++)
          System.out.print(cofTypes[i] + " ");
        System.out.println(manAttrs[1] + ", " + manAttrs[2]);
        rs2.close();
        pstmt.close();
      }
      rs.close();
      stmt.close();
      con.close();
    } catch(BatchUpdateException b) {
      System.err.println("-----BatchUpdateException-----");
      System.err.println("SQLState:  " + b.getSQLState());
      System.err.println("Message:  " + b.getMessage());
      System.err.println("Vendor:  " + b.getErrorCode());
      System.err.print("Update counts:  ");
      int [] updateCounts = b.getUpdateCounts();
      for (int i = 0; i < updateCounts.length; i++) {
        System.err.print(updateCounts[i] + "   ");
      }
      System.err.println("");
    } catch(SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
      System.err.println("SQLState:  " + ex.getSQLState());
      System.err.println("Message:  " + ex.getMessage());
      System.err.println("Vendor:  " + ex.getErrorCode());
    }
  }
}