View Javadoc
1   /*
2    * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package java.sql;
27  
28  /**
29   * <p>The standard mapping in the Java programming language for an SQL
30   * structured type. A <code>Struct</code> object contains a
31   * value for each attribute of the SQL structured type that
32   * it represents.
33   * By default, an instance of<code>Struct</code> is valid as long as the
34   * application has a reference to it.
35   * <p>
36   * All methods on the <code>Struct</code> interface must be fully implemented if the
37   * JDBC driver supports the data type.
38   * @since 1.2
39   */
40  
41  public interface Struct {
42  
43    /**
44     * Retrieves the SQL type name of the SQL structured type
45     * that this <code>Struct</code> object represents.
46     *
47     * @return the fully-qualified type name of the SQL structured
48     *          type for which this <code>Struct</code> object
49     *          is the generic representation
50     * @exception SQLException if a database access error occurs
51     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
52     * this method
53     * @since 1.2
54     */
55    String getSQLTypeName() throws SQLException;
56  
57    /**
58     * Produces the ordered values of the attributes of the SQL
59     * structured type that this <code>Struct</code> object represents.
60     * As individual attributes are processed, this method uses the type map
61     * associated with the
62     * connection for customizations of the type mappings.
63     * If there is no
64     * entry in the connection's type map that matches the structured
65     * type that an attribute represents,
66     * the driver uses the standard mapping.
67     * <p>
68     * Conceptually, this method calls the method
69     * <code>getObject</code> on each attribute
70     * of the structured type and returns a Java array containing
71     * the result.
72     *
73     * @return an array containing the ordered attribute values
74     * @exception SQLException if a database access error occurs
75     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
76     * this method
77     * @since 1.2
78     */
79    Object[] getAttributes() throws SQLException;
80  
81    /**
82     * Produces the ordered values of the attributes of the SQL
83     * structured type that this <code>Struct</code> object represents.
84     *  As individual attributes are processed, this method uses the given type map
85     * for customizations of the type mappings.
86     * If there is no
87     * entry in the given type map that matches the structured
88     * type that an attribute represents,
89     * the driver uses the standard mapping. This method never
90     * uses the type map associated with the connection.
91     * <p>
92     * Conceptually, this method calls the method
93     * <code>getObject</code> on each attribute
94     * of the structured type and returns a Java array containing
95     * the result.
96     *
97     * @param map a mapping of SQL type names to Java classes
98     * @return an array containing the ordered attribute values
99     * @exception SQLException if a database access error occurs
100    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
101    * this method
102    * @since 1.2
103    */
104   Object[] getAttributes(java.util.Map<String,Class<?>> map)
105       throws SQLException;
106 }