public class JDBC
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
JDBC.GeneratedId
Helper class whose
equals() method returns
true for all strings on this format: SQL061021105830900 |
Modifier and Type | Field and Description |
---|---|
static java.lang.String[] |
GET_TABLES_SYNONYM
Constant to pass to DatabaseMetaData.getTables() to fetch
just synonyms.
|
static java.lang.String[] |
GET_TABLES_TABLE
Constant to pass to DatabaseMetaData.getTables() to fetch
just tables.
|
static java.lang.String[] |
GET_TABLES_VIEW
Constant to pass to DatabaseMetaData.getTables() to fetch
just views.
|
private static boolean |
HAVE_AUTO_CLOSEABLE_RESULT_SET
Does java.sql.ResultSet implement java.lang.AutoCloseable?
|
private static boolean |
HAVE_DRIVER
Tell if we are allowed to use DriverManager to create database
connections.
|
static boolean |
HAVE_JSON_SIMPLE
Is the json-simple core jar file on the classpath
|
static boolean |
HAVE_LUCENE_ANALYZERS
Is the Lucene analyzer jar file on the classpath
|
static boolean |
HAVE_LUCENE_CORE
Is the Lucene core jar file on the classpath
|
static boolean |
HAVE_LUCENE_QUERYPARSER
Is the Lucene queryparser jar file on the classpath
|
private static boolean |
HAVE_MBEAN_SERVER
Is javax.management.MBeanServer available?
|
private static boolean |
HAVE_REFERENCEABLE |
private static boolean |
HAVE_SAVEPOINT
Does the Savepoint class exist, indicates
JDBC 3 (or JSR 169).
|
private static boolean |
HAVE_SQLTYPE |
private static boolean |
HAVE_SQLXML
Does the java.sql.SQLXML class exist, indicates JDBC 4.
|
static int |
SQLXML
Types.SQLXML value without having to compile with JDBC4.
|
Constructor and Description |
---|
JDBC() |
Modifier and Type | Method and Description |
---|---|
private static junit.framework.AssertionFailedError |
addRsToReport(junit.framework.AssertionFailedError afe,
java.sql.ResultSetMetaData rsmd,
java.util.List<java.util.List<java.lang.String>> seen,
java.util.List<java.lang.String> seenRow,
java.sql.ResultSet rs) |
static void |
assertClosed(java.sql.ResultSet rs) |
static void |
assertColumnNames(java.sql.ResultSet rs,
java.lang.String... expectedColNames)
Takes a result set and an array of expected colum names (as
Strings) and asserts that the column names in the result
set metadata match the number, order, and names of those
in the array.
|
static void |
assertColumnTypes(java.sql.ResultSet rs,
int[] expectedTypes)
Takes a result set and an array of expected column types
from java.sql.Types
and asserts that the column types in the result
set metadata match the number, order, and names of those
in the array.
|
static void |
assertCurrentSchema(java.sql.Connection con,
java.lang.String schema)
Asserts that the current schema is the same as the one specified.
|
static void |
assertCurrentUser(java.sql.Connection con,
java.lang.String user)
Asserts that the current user is the same as the one specified.
|
static void |
assertDatabaseMetaDataColumns(java.sql.ResultSet rs,
boolean[] nullability,
int[] expectedTypes,
java.lang.String... expectedColNames)
Takes a result set and an array of expected colum names (as
Strings) and asserts that the column names in the result
set metadata match the number, order, and names of those
in the array.
|
static void |
assertDatabaseMetaDataColumns(java.sql.ResultSet rs,
int[] expectedTypes,
java.lang.String... expectedColNames)
Takes a result set and an array of expected colum names (as
Strings) and asserts that the column names in the result
set metadata match the number, order, and names of those
in the array.
|
static int |
assertDrainResults(java.sql.ResultSet rs)
Drain a single ResultSet by reading all of its
rows and columns.
|
static int |
assertDrainResults(java.sql.ResultSet rs,
int expectedRows)
Does the work of assertDrainResults() as described
above.
|
static void |
assertDrainResultsHasData(java.sql.ResultSet rs)
Drain a ResultSet and assert it has at least one row.
|
static void |
assertEmpty(java.sql.ResultSet rs)
Assert a result set is empty.
|
static void |
assertFullResultSet(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows,
boolean allAsTrimmedStrings)
Takes a result set and a two-dimensional array and asserts
that the rows and columns in the result set match the number,
order, and values of those in the array.
|
static void |
assertFullResultSet(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows,
boolean allAsTrimmedStrings,
boolean closeResultSet)
Takes a result set and a two-dimensional array and asserts
that the rows and columns in the result set match the number,
order, and values of those in the array.
|
static void |
assertFullResultSet(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows,
java.lang.String[] warnings)
assertFullResultSet() using trimmed string comparisons.
|
static void |
assertFullResultSet(java.sql.ResultSet rs,
java.lang.String[][] expectedRows)
assertFullResultSet() using trimmed string comparisions.
|
private static void |
assertFullResultSetMinion(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows,
boolean allAsTrimmedStrings,
boolean closeResultSet,
java.lang.String[] warnings) |
static void |
assertGeneratedKeyResultSet(java.lang.String description,
java.sql.ResultSet keys)
Assert that a ResultSet representing generated keys is non-null
and of the correct type.
|
static void |
assertMetaDataMatch(java.sql.DatabaseMetaData dmd,
java.sql.ResultSetMetaData rsmd)
Assert all columns in the ResultSetMetaData match the
table's defintion through DatabaseMetadDta.
|
static void |
assertNoMoreResults(java.sql.Statement s)
Assert that the statement has no more results(getMoreResults) and it
indeed does not return any resultsets(by checking getResultSet).
|
static void |
assertNoWarnings(java.sql.SQLWarning warning)
Assert that no warnings were returned from a JDBC getWarnings()
method such as Connection.getWarnings.
|
static void |
assertNullability(java.sql.ResultSet rs,
boolean[] nullability)
Check the nullability of the column definitions for
the ResultSet matches the expected values.
|
static void |
assertParameterTypes(java.sql.PreparedStatement ps,
int[] expectedTypes)
Takes a Prepared Statement and an array of expected parameter types
from java.sql.Types
and asserts that the parameter types in the ParamterMetaData
match the number and order of those
in the array.
|
static void |
assertPartialResultSet(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows,
java.util.BitSet colsToCheck)
Similar to assertFullResultSet(...) above, except that this
method takes a BitSet and checks the received expectedRows
against the columns referenced by the BitSet.
|
private static void |
assertResultColumnNullable(java.sql.ResultSet rs,
java.util.List<java.util.List<java.lang.String>> seen,
java.util.List<java.lang.String> seenRow,
int col)
Assert that a column is nullable in its ResultSetMetaData.
|
static void |
assertResultSetContains(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows)
Asserts that the
ResultSet contains the rows specified by the
two-dimensional array. |
private static void |
assertRowInResultSet(java.sql.ResultSet rs,
java.util.List<java.util.List<java.lang.String>> seen,
java.util.List<java.lang.String> seenRow,
int rowNum,
java.lang.Object[] expectedRow,
boolean asTrimmedStrings)
Assert that every column in the current row of the received
result set matches the corresponding column in the received
array.
|
private static void |
assertRowInResultSet(java.sql.ResultSet rs,
java.util.List<java.util.List<java.lang.String>> seen,
java.util.List<java.lang.String> seenRow,
int rowNum,
java.lang.Object[] expectedRow,
boolean asTrimmedStrings,
java.util.BitSet colsToCheck)
See assertRowInResultSet(...) above.
|
private static void |
assertRSContains(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows,
boolean asTrimmedStrings,
boolean rowCountsMustMatch)
Asserts that the
ResultSet contains the rows specified by the
two-dimensional array. |
static void |
assertSameContents(java.sql.ResultSet rs1,
java.sql.ResultSet rs2)
Assert two result sets have the same contents.
|
static void |
assertSingleValueResultSet(java.sql.ResultSet rs,
java.lang.String value)
Asserts a ResultSet returns a single row with a single
column equal to the passed in String value.
|
static void |
assertUnorderedResultSet(java.sql.ResultSet rs,
java.lang.Object[][] expectedRows,
boolean asTrimmedStrings)
Assert that the ResultSet contains the same rows as the specified
two-dimensional array.
|
static void |
assertUnorderedResultSet(java.sql.ResultSet rs,
java.lang.String[][] expectedRows)
Assert that the ResultSet contains the same rows as the specified
two-dimensional array.
|
private static java.lang.String |
bytesToString(byte[] ba)
Convert byte array to String.
|
static void |
checkPlan(java.sql.Statement s,
java.lang.String[] sequence)
Get run-time statistics and check that a sequence of string exist in the
statistics, using the given statement.
|
static void |
cleanup(java.sql.Connection conn)
Rollback and close a connection for cleanup.
|
private static java.lang.String |
compressQuotes(java.lang.String source,
java.lang.String quotes)
Compress 2 adjacent (single or double) quotes into a single (s or d)
quote when found in the middle of a String.
|
static void |
dropSchema(java.sql.DatabaseMetaData dmd,
java.lang.String schema)
Drop a database schema by dropping all objects in it
and then executing DROP SCHEMA.
|
private static void |
dropUsingDMD(java.sql.Statement s,
java.sql.ResultSet rs,
java.lang.String schema,
java.lang.String mdColumn,
java.lang.String dropType)
DROP a set of objects based upon a ResultSet from a
DatabaseMetaData call.
|
static java.lang.String |
escape(java.lang.String name)
Escape a non-qualified name so that it is suitable
for use in a SQL query executed by JDBC.
|
static java.lang.String |
escape(java.lang.String schema,
java.lang.String name)
Escape a schama-qualified name so that it is suitable
for use in a SQL query executed by JDBC.
|
(package private) static boolean |
haveClass(java.lang.String className)
Can we load a specific class, use this to determine JDBC level.
|
static java.lang.String |
identifierToCNF(java.lang.String id)
Convert a SQL identifier to case normal form.
|
static java.lang.String |
sqlNameFromJdbc(int jdbcType)
Return Type name from jdbc type
|
private static boolean |
sysSequencesExists(java.sql.Connection conn)
Return true if the SYSSEQUENCES table exists.
|
static boolean |
vmSupportsJDBC3()
Return true if the virtual machine environment
supports JDBC3 or later.
|
static boolean |
vmSupportsJDBC4()
Return true if the virtual machine environment
supports JDBC4 or later.
|
static boolean |
vmSupportsJDBC41()
Return true if the virtual machine environment supports JDBC 4.1 or
later.
|
static boolean |
vmSupportsJDBC42()
Return true if the virtual machine environment supports JDBC 4.2 or
later.
|
static boolean |
vmSupportsJMX()
Return true if the JVM supports the Java Management Extensions (JMX).
|
static boolean |
vmSupportsJNDI() |
static boolean |
vmSupportsJSR169()
Return true if the virtual machine environment
supports JSR169.
|
public static final java.lang.String[] GET_TABLES_TABLE
public static final java.lang.String[] GET_TABLES_VIEW
public static final java.lang.String[] GET_TABLES_SYNONYM
public static final int SQLXML
private static final boolean HAVE_DRIVER
private static final boolean HAVE_SAVEPOINT
private static final boolean HAVE_SQLXML
public static final boolean HAVE_LUCENE_CORE
public static final boolean HAVE_LUCENE_ANALYZERS
public static final boolean HAVE_LUCENE_QUERYPARSER
public static final boolean HAVE_JSON_SIMPLE
private static final boolean HAVE_AUTO_CLOSEABLE_RESULT_SET
private static final boolean HAVE_REFERENCEABLE
private static final boolean HAVE_SQLTYPE
private static final boolean HAVE_MBEAN_SERVER
static boolean haveClass(java.lang.String className)
className
- Class to attempt load on.public static boolean vmSupportsJDBC42()
public static boolean vmSupportsJDBC41()
public static boolean vmSupportsJDBC4()
public static boolean vmSupportsJDBC3()
public static boolean vmSupportsJSR169()
public static boolean vmSupportsJNDI()
true
if JNDI is available.public static boolean vmSupportsJMX()
public static void cleanup(java.sql.Connection conn) throws java.sql.SQLException
If conn is not-null and isClosed() returns false then both rollback and close will be called. If both methods throw exceptions then they will be chained together and thrown.
java.sql.SQLException
- Error closing connection.public static void dropSchema(java.sql.DatabaseMetaData dmd, java.lang.String schema) throws java.sql.SQLException
dmd
- DatabaseMetaData object for databaseschema
- Name of the schemajava.sql.SQLException
- database errorprivate static boolean sysSequencesExists(java.sql.Connection conn) throws java.sql.SQLException
java.sql.SQLException
private static void dropUsingDMD(java.sql.Statement s, java.sql.ResultSet rs, java.lang.String schema, java.lang.String mdColumn, java.lang.String dropType) throws java.sql.SQLException
s
- Statement object used to execute the DROP commands.rs
- DatabaseMetaData ResultSetschema
- Schema the objects are contained inmdColumn
- The column name used to extract the object's
name from rsdropType
- The keyword to use after DROP in the SQL statementjava.sql.SQLException
- database errors.public static void assertMetaDataMatch(java.sql.DatabaseMetaData dmd, java.sql.ResultSetMetaData rsmd) throws java.sql.SQLException
java.sql.SQLException
public static void assertEmpty(java.sql.ResultSet rs) throws java.sql.SQLException
java.sql.SQLException
public static void assertClosed(java.sql.ResultSet rs)
rs
- public static void assertNoWarnings(java.sql.SQLWarning warning)
warning
- Warning that should be null.public static void assertNoMoreResults(java.sql.Statement s) throws java.sql.SQLException
s
- Statement holding no results.java.sql.SQLException
- Exception checking results.public static void assertGeneratedKeyResultSet(java.lang.String description, java.sql.ResultSet keys) throws java.sql.SQLException
description
- For assert messageskeys
- ResultSet returned from getGeneratedKeys().java.sql.SQLException
public static void assertDrainResultsHasData(java.sql.ResultSet rs) throws java.sql.SQLException
java.sql.SQLException
public static int assertDrainResults(java.sql.ResultSet rs) throws java.sql.SQLException
rs
- Result set to drain.java.sql.SQLException
public static int assertDrainResults(java.sql.ResultSet rs, int expectedRows) throws java.sql.SQLException
rs
- Result set to drain.expectedRows
- If non-negative, indicates how
many rows we expected to see in the result set.java.sql.SQLException
private static void assertResultColumnNullable(java.sql.ResultSet rs, java.util.List<java.util.List<java.lang.String>> seen, java.util.List<java.lang.String> seenRow, int col) throws java.sql.SQLException
rs
- the resultSetseen
- The set of entirely read rows so farseenRow
- The set of read columns in the current row so farcol
- Position of column just fetched that was NULL.java.sql.SQLException
- Error accessing meta datapublic static void assertColumnNames(java.sql.ResultSet rs, java.lang.String... expectedColNames) throws java.sql.SQLException
rs
- ResultSet for which we're checking column names.expectedColNames
- Array of expected column names.java.sql.SQLException
public static void assertDatabaseMetaDataColumns(java.sql.ResultSet rs, int[] expectedTypes, java.lang.String... expectedColNames) throws java.sql.SQLException
rs
- ResultSet for which we're checking column names.expectedTypes
- Array of expected types for the columns.expectedColNames
- Array of expected column names.java.sql.SQLException
public static void assertDatabaseMetaDataColumns(java.sql.ResultSet rs, boolean[] nullability, int[] expectedTypes, java.lang.String... expectedColNames) throws java.sql.SQLException
rs
- ResultSet for which we're checking column names.expectedTypes
- Array of expected types for the columns.nullability
- Array of expected nullability values for the columns.expectedColNames
- Array of expected column names.java.sql.SQLException
public static void assertColumnTypes(java.sql.ResultSet rs, int[] expectedTypes) throws java.sql.SQLException
rs
- ResultSet for which we're checking column names.expectedTypes
- Array of expected column types.java.sql.SQLException
public static void assertParameterTypes(java.sql.PreparedStatement ps, int[] expectedTypes) throws java.lang.Exception
ps
- PreparedStatement for which we're checking parameter names.expectedTypes
- Array of expected parameter types.java.lang.Exception
public static void assertNullability(java.sql.ResultSet rs, boolean[] nullability) throws java.sql.SQLException
rs
- nullability
- java.sql.SQLException
public static void assertSingleValueResultSet(java.sql.ResultSet rs, java.lang.String value) throws java.sql.SQLException
java.sql.SQLException
public static void assertFullResultSet(java.sql.ResultSet rs, java.lang.String[][] expectedRows) throws java.sql.SQLException
assertFullResultSet(rs, expectedRows, true)
As a side effect, this method closes the ResultSet.java.sql.SQLException
public static void assertFullResultSet(java.sql.ResultSet rs, java.lang.Object[][] expectedRows, boolean allAsTrimmedStrings) throws java.sql.SQLException
rs
- The actual result set.expectedRows
- 2-Dimensional array of objects representing
the expected result set.allAsTrimmedStrings
- Whether or not to fetch (and compare)
all values from the actual result set as trimmed Strings; if
false the values will be fetched and compared as Objects. For
more on how this parameter is used, see assertRowInResultSet().java.sql.SQLException
public static void assertFullResultSet(java.sql.ResultSet rs, java.lang.Object[][] expectedRows, boolean allAsTrimmedStrings, boolean closeResultSet) throws java.sql.SQLException
rs
- The actual result set.expectedRows
- 2-Dimensional array of objects representing
the expected result set.allAsTrimmedStrings
- Whether or not to fetch (and compare)
all values from the actual result set as trimmed Strings; if
false the values will be fetched and compared as Objects. For
more on how this parameter is used, see assertRowInResultSet().closeResultSet
- If true, the ResultSet is closed on the way out.java.sql.SQLException
public static void assertFullResultSet(java.sql.ResultSet rs, java.lang.Object[][] expectedRows, java.lang.String[] warnings) throws java.sql.SQLException
assertFullResultSet(rs, expectedRows, true)
As a side effect, this method closes the result set.
Additionally, also assert that the given warnings are seen. The array
warnings
should contain null or a warning (SQLState string). The
array entry is asserted against the result set after having read the
corresponding row in the result set. NOTE: only asserted for embedded
result sets, cf DERBY-159
For now, we only look at the first warning if there is a chain
of warnings.java.sql.SQLException
private static void assertFullResultSetMinion(java.sql.ResultSet rs, java.lang.Object[][] expectedRows, boolean allAsTrimmedStrings, boolean closeResultSet, java.lang.String[] warnings) throws java.sql.SQLException
java.sql.SQLException
public static void assertPartialResultSet(java.sql.ResultSet rs, java.lang.Object[][] expectedRows, java.util.BitSet colsToCheck) throws java.sql.SQLException
java.sql.SQLException
private static void assertRowInResultSet(java.sql.ResultSet rs, java.util.List<java.util.List<java.lang.String>> seen, java.util.List<java.lang.String> seenRow, int rowNum, java.lang.Object[] expectedRow, boolean asTrimmedStrings) throws java.sql.SQLException
If the expected value for a given row/column is a SQL NULL, then the corresponding value in the array should be a Java null.
If a given row/column could have different values (for instance,
because it contains a timestamp), the expected value of that
row/column could be an object whose equals()
method
returns true
for all acceptable values. (This does
not work if one of the acceptable values is null
.)
rs
- Result set whose current row we'll check.seen
- The set of entirely read rows so far (IN semantics)seenRow
- The set of read columns in the current row so far
(OUT semantics)rowNum
- Row number (w.r.t expected rows) that we're
checking.expectedRow
- Array of objects representing the expected
values for the current row.asTrimmedStrings
- Whether or not to fetch and compare
all values from "rs" as trimmed Strings. If true then the
value from rs.getString() AND the expected value will both
be trimmed before comparison. If such trimming is not
desired (ex. if we were testing the padding of CHAR columns)
then this param should be FALSE and the expected values in
the received array should include the expected whitespace.
If for example the caller wants to check the padding of a
CHAR(8) column, asTrimmedStrings should be FALSE and the
expected row should contain the expected padding, such as
"FRED ".java.sql.SQLException
private static void assertRowInResultSet(java.sql.ResultSet rs, java.util.List<java.util.List<java.lang.String>> seen, java.util.List<java.lang.String> seenRow, int rowNum, java.lang.Object[] expectedRow, boolean asTrimmedStrings, java.util.BitSet colsToCheck) throws java.sql.SQLException
colsToCheck
- If non-null then for every bit b
that is set in colsToCheck, we'll compare the (b+1)-th column
of the received result set's current row to the i-th column
of expectedRow, where 0 <= i < # bits set in colsToCheck.
So if colsToCheck is { 0, 3 } then expectedRow should have
two objects and we'll check that:
expectedRow[0].equals(rs.getXXX(1));
expectedRow[1].equals(rs.getXXX(4));
If colsToCheck is null then the (i+1)-th column in the
result set is compared to the i-th column in expectedRow,
where 0 <= i < expectedRow.length.java.sql.SQLException
public static void assertSameContents(java.sql.ResultSet rs1, java.sql.ResultSet rs2) throws java.sql.SQLException, java.io.IOException
java.io.IOException
java.sql.SQLException
public static void assertUnorderedResultSet(java.sql.ResultSet rs, java.lang.String[][] expectedRows) throws java.sql.SQLException
rs
- the ResultSet to checkexpectedRows
- the expected rowsjava.sql.SQLException
public static void assertUnorderedResultSet(java.sql.ResultSet rs, java.lang.Object[][] expectedRows, boolean asTrimmedStrings) throws java.sql.SQLException
getObject()
method and
compared with equals()
. If the
asTrimmedStrings
is true
, the objects are read
with getString()
and trimmed before they are compared. The
ResultSet object will be closed when this method returns.rs
- the ResultSet to checkexpectedRows
- the expected rowsasTrimmedStrings
- whether the object should be compared as trimmed
stringsjava.sql.SQLException
public static void assertResultSetContains(java.sql.ResultSet rs, java.lang.Object[][] expectedRows) throws java.sql.SQLException
ResultSet
contains the rows specified by the
two-dimensional array.
The order of the rows are ignored, and there may be more rows in the result set than in the array. All values are compared as trimmed strings.
rs
- the result set to checkexpectedRows
- the rows that must exist in the result setjava.sql.SQLException
- if accessing the result set failsprivate static void assertRSContains(java.sql.ResultSet rs, java.lang.Object[][] expectedRows, boolean asTrimmedStrings, boolean rowCountsMustMatch) throws java.sql.SQLException
ResultSet
contains the rows specified by the
two-dimensional array.rs
- the result set to checkexpectedRows
- the rows that must exist in the result setasTrimmedStrings
- whether the objects should be compared as
trimmed stringsrowCountsMustMatch
- whether the number of rows must be the same in
the result set and the array of expected rowsjava.sql.SQLException
- if accessing the result set failspublic static void assertCurrentSchema(java.sql.Connection con, java.lang.String schema) throws java.sql.SQLException
con
- connection to check schema inschema
- expected schema namejava.sql.SQLException
- if something goes wrongpublic static void assertCurrentUser(java.sql.Connection con, java.lang.String user) throws java.sql.SQLException
con
- connection to check schema inuser
- expected user namejava.sql.SQLException
- if something goes wrongprivate static java.lang.String bytesToString(byte[] ba)
ba
- Byte array to be converted.public static java.lang.String escape(java.lang.String name)
private static java.lang.String compressQuotes(java.lang.String source, java.lang.String quotes)
source
- string to be compressedquotes
- string containing two single or double quotes.public static java.lang.String identifierToCNF(java.lang.String id)
public static java.lang.String escape(java.lang.String schema, java.lang.String name)
public static java.lang.String sqlNameFromJdbc(int jdbcType)
jdbcType
- jdbc type to translatepublic static void checkPlan(java.sql.Statement s, java.lang.String[] sequence) throws java.sql.SQLException
s
- the statement presumed to just have been executed, and for
which we want to check the run-time statisticssequence
- the sequnce of strings we expect to see in the run-time
statisticsjava.sql.SQLException
- standardRuntimeStatisticsParser.assertSequence(java.lang.String[])
private static junit.framework.AssertionFailedError addRsToReport(junit.framework.AssertionFailedError afe, java.sql.ResultSetMetaData rsmd, java.util.List<java.util.List<java.lang.String>> seen, java.util.List<java.lang.String> seenRow, java.sql.ResultSet rs) throws java.sql.SQLException
java.sql.SQLException
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.