- Notifications
You must be signed in to change notification settings - Fork 5.8k
/
Copy pathpackage-info.java
333 lines (332 loc) · 15.5 KB
/
package-info.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
/*
* Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
*
* Provides the API for accessing and processing data stored in a
* data source (usually a relational database) using the
* Java programming language.
* This API includes a framework whereby different
* drivers can be installed dynamically to access different data sources.
* Although the JDBC API is mainly geared
* to passing SQL statements to a database, it provides for reading and
* writing data from any data source with a tabular format.
* The reader/writer facility, available through the
* {@code javax.sql.RowSet} group of interfaces, can be customized to
* use and update data from a spread sheet, flat file, or any other tabular
* data source.
*
* <h2>What the JDBC 4.3 API Includes</h2>
* The JDBC 4.3 API includes both
* the {@code java.sql} package, referred to as the JDBC core API,
* and the {@code javax.sql} package, referred to as the JDBC Optional
* Package API. This complete JDBC API
* is included in the Java Standard Edition (Java SE), version 7.
* The {@code javax.sql} package extends the functionality of the JDBC API
* from a client-side API to a server-side API, and it is an essential part
* of the Java Enterprise Edition
* (Java EE) technology.
*
* <h2>Versions</h2>
* The JDBC 4.3 API incorporates all of the previous JDBC API versions:
* <UL>
* <LI> The JDBC 4.2 API</li>
* <LI> The JDBC 4.1 API</li>
* <LI> The JDBC 4.0 API</li>
* <LI> The JDBC 3.0 API</li>
* <LI> The JDBC 2.1 core API</li>
* <LI> The JDBC 2.0 Optional Package API<br>
* (Note that the JDBC 2.1 core API and the JDBC 2.0 Optional Package
* API together are referred to as the JDBC 2.0 API.)</li>
* <LI> The JDBC 1.2 API</li>
* <LI> The JDBC 1.0 API</li>
* </UL>
* <P>
* Classes, interfaces, methods, fields, constructors, and exceptions
* have the following "since" tags that indicate when they were introduced
* into the Java platform. When these "since" tags are used in
* Javadoc comments for the JDBC API,
* they indicate the following:
* <UL>
* <LI>Since 9 -- new in the JDBC 4.3 API and part of the Java SE platform,
* version 9</li>
* <LI>Since 1.8 -- new in the JDBC 4.2 API and part of the Java SE platform,
* version 8</li>
* <LI>Since 1.7 -- new in the JDBC 4.1 API and part of the Java SE platform,
* version 7</li>
* <LI>Since 1.6 -- new in the JDBC 4.0 API and part of the Java SE platform,
* version 6</li>
* <LI>Since 1.4 -- new in the JDBC 3.0 API and part of the J2SE platform,
* version 1.4</li>
* <LI>Since 1.2 -- new in the JDBC 2.0 API and part of the J2SE platform,
* version 1.2</li>
* <LI>Since 1.1 or no "since" tag -- in the original JDBC 1.0 API and part of
* the JDK, version 1.1</li>
* </UL>
* <P>
* <b>NOTE:</b> Many of the new features are optional; consequently, there is
* some variation in drivers and the features they support. Always
* check your driver's documentation to see whether it supports a feature before
* you try to use it.
*
* <h2>What the {@code java.sql} Package Contains</h2>
* The {@code java.sql} package contains API for the following:
* <UL>
* <LI>Making a connection with a database via the {@code DriverManager} facility
* <UL>
* <LI>{@code DriverManager} class -- makes a connection with a driver
* <LI>{@code Driver} interface -- provides the API for registering
* and connecting drivers based on JDBC technology ("JDBC drivers");
* generally used only by the {@code DriverManager} class
* <LI>{@code DriverPropertyInfo} class -- provides properties for a
* JDBC driver; not used by the general user
* </UL>
* <LI>Sending SQL statements to a database
* <UL>
* <LI>{@code Statement} -- used to send basic SQL statements
* <LI>{@code PreparedStatement} -- used to send prepared statements or
* basic SQL statements (derived from {@code Statement})
* <LI>{@code CallableStatement} -- used to call database stored
* procedures (derived from {@code PreparedStatement})
* <LI>{@code Connection} interface -- provides methods for creating
* statements and managing connections and their properties
* <LI>{@code Savepoint} -- provides savepoints in a transaction
*
* </UL>
* <LI>Retrieving and updating the results of a query
* <UL>
* <LI>{@code ResultSet} interface
* </UL>
* <LI>Standard mappings for SQL types to classes and interfaces in the
* Java programming language
* <UL>
* <LI>{@code Array} interface -- mapping for SQL {@code ARRAY}
* <LI>{@code Blob} interface -- mapping for SQL {@code BLOB}
* <LI>{@code Clob} interface -- mapping for SQL {@code CLOB}
* <LI>{@code Date} class -- mapping for SQL {@code DATE}
* <LI>{@code NClob} interface -- mapping for SQL {@code NCLOB}
* <LI>{@code Ref} interface -- mapping for SQL {@code REF}
* <LI>{@code RowId} interface -- mapping for SQL {@code ROWID}
* <LI>{@code Struct} interface -- mapping for SQL {@code STRUCT}
* <LI>{@code SQLXML} interface -- mapping for SQL {@code XML}
* <LI>{@code Time} class -- mapping for SQL {@code TIME}
* <LI>{@code Timestamp} class -- mapping for SQL {@code TIMESTAMP}
* <LI>{@code Types} class -- provides constants for SQL types
* </UL>
* <LI>Custom mapping an SQL user-defined type (UDT) to a class in the
* Java programming language
* <UL>
* <LI>{@code SQLData} interface -- specifies the mapping of
* a UDT to an instance of this class
* <LI>{@code SQLInput} interface -- provides methods for reading
* UDT attributes from a stream
* <LI>{@code SQLOutput} interface -- provides methods for writing
* UDT attributes back to a stream
* </UL>
* <LI>Metadata
* <UL>
* <LI>{@code DatabaseMetaData} interface -- provides information
* about the database
* <LI>{@code ResultSetMetaData} interface -- provides information
* about the columns of a {@code ResultSet} object
* <LI>{@code ParameterMetaData} interface -- provides information
* about the parameters to {@code PreparedStatement} commands
* </UL>
* <LI>Exceptions
* <UL>
* <LI>{@code SQLException} -- thrown by most methods when there
* is a problem accessing data and by some methods for other reasons
* <LI>{@code SQLWarning} -- thrown to indicate a warning
* <LI>{@code DataTruncation} -- thrown to indicate that data may have
* been truncated
* <LI>{@code BatchUpdateException} -- thrown to indicate that not all
* commands in a batch update executed successfully
* </UL>
* </UL>
*
* <h3>{@code java.sql} and {@code javax.sql} Features Introduced in the JDBC 4.3 API</h3>
* <UL>
* <LI>Added {@code Sharding} support</LI>
* <LI>Enhanced {@code Connection} to be able to provide hints
* to the driver that a request, an independent unit of work,
* is beginning or ending</LI>
* <LI>Enhanced {@code DatabaseMetaData} to determine if Sharding is
* supported</LI>
* <LI>Added the method {@code drivers} to {@code DriverManager}
* to return a Stream of the currently loaded and
* available JDBC drivers</LI>
* <LI>Added support to {@code Statement} for enquoting literals
* and simple identifiers</LI>
* <LI>Clarified the Java SE version that methods were deprecated</LI>
* </UL>
*
* <h3>{@code java.sql} and {@code javax.sql} Features Introduced in the JDBC 4.2 API</h3>
* <UL>
* <LI>Added {@code JDBCType} enum and {@code SQLType} interface</li>
* <LI>Support for {@code REF CURSORS} in {@code CallableStatement}
* </LI>
* <LI>{@code DatabaseMetaData} methods to return maximum Logical LOB size
* and if Ref Cursors are supported</LI>
* <LI>Added support for large update counts</LI>
*
* </UL>
*
* <h3>{@code java.sql} and {@code javax.sql} Features Introduced in the JDBC 4.1 API</h3>
* <UL>
* <LI>Allow {@code Connection},
* {@code ResultSet} and {@code Statement} objects to be
* used with the try-with-resources statement</LI>
* <LI>Support added to {@code CallableStatement} and
* {@code ResultSet} to specify the Java type to convert to via the
* {@code getObject} method</LI>
* <LI>{@code DatabaseMetaData} methods to return PseudoColumns and if a
* generated key is always returned</LI>
* <LI>Added support to {@code Connection} to specify a database schema,
* abort and timeout a physical connection.</LI>
* <LI>Added support to close a {@code Statement} object when its dependent
* objects have been closed</LI>
* <LI>Support for obtaining the parent logger for a {@code Driver},
* {@code DataSource}, {@code ConnectionPoolDataSource} and
* {@code XADataSource}</LI>
*
* </UL>
* <h3>{@code java.sql} and {@code javax.sql} Features Introduced in the JDBC 4.0 API</h3>
* <UL>
* <LI>auto java.sql.Driver discovery -- no longer need to load a
* {@code java.sql.Driver} class via {@code Class.forName}
* <LI>National Character Set support added
* <li>Support added for the SQL:2003 XML data type
* <lI>SQLException enhancements -- Added support for cause chaining; New SQLExceptions
* added for common SQLState class value codes
* <li>Enhanced Blob/Clob functionality -- Support provided to create and free a Blob/Clob instance
* as well as additional methods added to improve accessibility
* <li>Support added for accessing a SQL ROWID
* <li>Support added to allow a JDBC application to access an instance of a JDBC resource
* that has been wrapped by a vendor, usually in an application server or connection
* pooling environment.
* <li>Availability to be notified when a {@code PreparedStatement} that is associated
* with a {@code PooledConnection} has been closed or the driver determines is invalid
*
*
* </UL>
*
*
* <h3>{@code java.sql} and {@code javax.sql} Features Introduced in the JDBC 3.0 API</h3>
* <UL>
* <LI>Pooled statements -- reuse of statements associated with a pooled
* connection
* <LI>Savepoints -- allow a transaction to be rolled back to a designated
* savepoint
* <LI>Properties defined for {@code ConnectionPoolDataSource} -- specify
* how connections are to be pooled
* <LI>Metadata for parameters of a {@code PreparedStatement} object
* <LI>Ability to retrieve values from automatically generated columns
* <LI>Ability to have multiple {@code ResultSet} objects
* returned from {@code CallableStatement} objects open at the
* same time
* <LI>Ability to identify parameters to {@code CallableStatement}
* objects by name as well as by index
* <LI>{@code ResultSet} holdability -- ability to specify whether cursors
* should be held open or closed at the end of a transaction
* <LI>Ability to retrieve and update the SQL structured type instance that a
* {@code Ref} object references
* <LI>Ability to programmatically update {@code BLOB},
* {@code CLOB}, {@code ARRAY}, and {@code REF} values.
* <LI>Addition of the {@code java.sql.Types.DATALINK} data type --
* allows JDBC drivers access to objects stored outside a data source
* <LI>Addition of metadata for retrieving SQL type hierarchies
* </UL>
*
* <h3>{@code java.sql} Features Introduced in the JDBC 2.1 Core API</h3>
* <UL>
* <LI>Scrollable result sets--using new methods in the {@code ResultSet}
* interface that allow the cursor to be moved to a particular row or to a
* position relative to its current position
* <LI>Batch updates
* <LI>Programmatic updates--using {@code ResultSet} updater methods
* <LI>New data types--interfaces mapping the SQL3 data types
* <LI>Custom mapping of user-defined types (UDTs)
* <LI>Miscellaneous features, including performance hints, the use of character
* streams, full precision for {@code java.math.BigDecimal} values,
* additional security, and
* support for time zones in date, time, and timestamp values.
* </UL>
*
* <h3>{@code javax.sql} Features Introduced in the JDBC 2.0 Optional
* Package API</h3>
* <UL>
* <LI>The {@code DataSource} interface as a means of making a connection. The
* Java Naming and Directory Interface
* (JNDI) is used for registering a {@code DataSource} object with a
* naming service and also for retrieving it.
* <LI>Pooled connections -- allowing connections to be used and reused
* <LI>Distributed transactions -- allowing a transaction to span diverse
* DBMS servers
* <LI>{@code RowSet} technology -- providing a convenient means of
* handling and passing data
* </UL>
*
*
* <h3>Custom Mapping of UDTs</h3>
* A user-defined type (UDT) defined in SQL can be mapped to a class in the Java
* programming language. An SQL structured type or an SQL {@code DISTINCT}
* type are the UDTs that may be custom mapped. The following three
* steps set up a custom mapping:
* <ol>
* <li>Defining the SQL structured type or {@code DISTINCT} type in SQL
* <li>Defining the class in the Java programming language to which the
* SQL UDT will be mapped. This class must implement the
* {@code SQLData} interface.
* <li>Making an entry in a {@code Connection} object's type map
* that contains two things:
* <ul>
* <li>the fully-qualified SQL name of the UDT
* <li>the {@code Class} object for the class that implements the
* {@code SQLData} interface
* </ul>
* </ol>
* <p>
* When these are in place for a UDT, calling the methods
* {@code ResultSet.getObject} or {@code CallableStatement.getObject}
* on that UDT will automatically retrieve the custom mapping for it. Also, the
* {@code PreparedStatement.setObject} method will automatically map the
* object back to its SQL type to store it in the data source.
*
* <h2>Package Specification</h2>
*
* <ul>
* <li><a href="https://jcp.org/en/jsr/detail?id=221">JDBC 4.3 Specification</a>
* </ul>
*
* <h2>Related Documentation</h2>
*
* <ul>
* <li><a href="http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html">
* Lesson:JDBC Basics(The Java Tutorials > JDBC Database Access)</a>
*
* <li>“<i>JDBC API Tutorial and Reference, Third Edition</i>”
* </ul>
* @since 1.1
*/
packagejava.sql;