|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Class Summary | |
ClientBaseDataSource | Base class for client-side DataSource implementations. |
ClientConnectionPoolDataSource | ClientConnectionPoolDataSource is a factory for PooledConnection objects. |
ClientDataSource | ClientDataSource is a simple data source implementation that can be used for establishing connections in a non-pooling, non-distributed environment. |
ClientDriver | |
ClientXADataSource | This is Derby's network XADataSource for use with JDBC3.0 and JDBC2.0. |
EmbeddedConnectionPoolDataSource | EmbeddedConnectionPoolDataSource is Derby's ConnectionPoolDataSource implementation for the JDBC3.0 environment. |
EmbeddedDataSource | EmbeddedDataSource is Derby's DataSource implementation for JDBC3.0. |
EmbeddedDriver | The embedded JDBC driver (Type 4) for Derby. |
EmbeddedSimpleDataSource | EmbeddedSimpleDataSource is Derby's DataSource implementation for J2ME/CDC/Foundation. |
EmbeddedXADataSource | EmbeddedXADataSource is Derby's XADataSource implementation for JDBC3.0. |
Client/Remote driver and data sources, used to connect to the network server
Embedded driver and data sources, used when the database engine is embedded with the application.
Derby's JDBC api is defined by its entry point classes, the drivers and data source implementations
and the standard JDBC api definitions of the java.sql
and javax.sql
classes.
Derby does not provide non-standard extensions to standard JDBC classes such as Connection
,
to encourage portable JDBC applications.
JDBC Implementation notes by JDBC class | ||
java.sql.Blob | java.sql.Clob | java.sql.Connection |
java.sql.PreparedStatement | java.sql.ResultSet | |
JDBC Implementation notes by SQL type | ||
SQL DATE and JDBC | SQL TIME and JDBC | SQL TIMESTAMP and JDBC |
Stream parameter values are not re-used. [JDBC3] says in the last paragraph of 13.2.2 that parameters are re-used but nothing special about streams. However javadoc for java.sql.PreparedStatement.clearParamters() says 'In general, parameter values remain in force for repeated use of a statement'. Maybe 'in general' can be interpreted to mean 'except for streams'. Stream parameter values are not re-used and if a stream is re-used, the statement execution will fail with 'Stream has already been read and end-of-file reached and cannot be re-used.'.
An ASCII character is defined as an eight bit character (range 0x00 to 0xff), see CHAR() function definition by [JDBC3] in appendix C.2.
For character types (Types.CHAR, Types.VARCHAR & Types.LONGVARCHAR), each character in the value is translated to one byte in the ASCII stream:
Derby’s SQL DATE type represents a date in the form yyyy-mm-dd with no associated time zone information.
A JDBC Date (java.sql.Date) by definition represents a point in time on a given date in a given time zone.
[JDBC3] intends that the point in time for a java.sql.Date object is 00:00 (midnight), but this is not enforced by the class.
JDBC drivers are required to return java.sql.Date objects that are normalized to 00:00 according to the required time zone.
Applications are expected to pass in java.sql.Date instances that are normalized to 00:00 (see section 18.1.1 of [TUTORIAL3]).
setDate() without a Calendar object or passing null for a Calendar object:
The yyyy-mm-dd values will be calculated from the milli-seconds value of the java.sql.Date instance using a Calendar object set to the time zone of the virtual machine.
This yyyy-mm-dd value will match the output of java.sql.Date.toString().
setDate() with a Calendar object:
The yyyy-mm-dd values will be calculated from the milliseconds value of the java.sql.Date instance using the passed in Calendar.
The code for this is
cal.setTimeInMillis(value.getTime());
yyyy = cal.get(Calendar.YEAR);
mm = cal.get(Calendar.MONTH) + 1;
dd = cal.get(Calendar.DAY_OF_MONTH);
This yyyy-mm-dd value may not match the output of java.sql.Date.toString() for the value, since this method always uses the time zone of the virtual machine.
Derby does not require that the application’s java.sql.Date value is normalized to 00:00 according to the required time zone.
In both cases no time zone information is stored with the SQL DATE value.
getDate() without a Calendar object or passing null for a Calendar object:
A java.sql.Date instance is returned with a millisecond value corresponding to 00:00 on yyyy-mm-dd according to the time zone of the java virtual machine
The toString() method of the returned value will return ‘yyyy-mm-dd’
getDate() with a Calendar object:
A java.sql.Date instance is returned with a millisecond value corresponding to 00:00 on yyyy-mm-dd according to the time zone of the Calendar
The toString() method of the returned value may not return ‘yyyy-mm-dd’, since this method always uses the time zone of the virtual machine.
Three different date formats are built into Derby.
(ISO/JIS) yyyy-mm-dd e.g. “1980-03-21”,
(IBM USA) mm/dd/yyyy e.g. “03/21/1980”, and
(IBM European) dd.mm.yyyy e.g. “21.03.1980”.
If the format of the string matches one of the built in formats then a conversion to a java.sql.Date matches that of a SQL DATE value with value yyyy-mm-dd.
If the string does not match any of the built in formats Derby attempts to use the Java locale specific parser to interpret the string as a date.
Derby’s SQL TIME type represents a time of day in the form hh:mm:ss with no associated time zone information.
A JDBC Time (java.sql.Time) by definition represents a point in time on an unspecified day in a given time zone.
Java.sql.Time extends java.util.date, so it includes a date. [JDBC3] intends that the date stored in a java.sql.Time be Jan 1 1970, but this is not enforced by the class.
JDBC drivers are required to return java.sql.Time objects that are normalized to Jan. 1 1970 according to the required time zone.
Applications are expected to pass in java.sql.Time instances that are normalized to Jan. 1 1970.
setTime() without a Calendar object or passing null for a Calendar object
The hh:mm:ss values will be calculated from the milli-seconds value of the java.sql.Time instance using a Calendar object set to the time zone of the virtual machine.
This hh:mm:ss value will match the output of java.sql.Date.toString().
setTime() with a Calendar object
The hh:mm:ss values will be calculated from the milliseconds value of the java.sql.Date instance using the passed in Calendar.
The code for this is
cal.setTimeInMillis(value.getTime());
hh = cal.get(Calendar.HOUR);
mm = cal.get(Calendar.MINUTE);
ss = cal.get(Calendar.SECOND);
This hh:mm:dd value may not match the output of java.sql.Date.toString() for the value, since this method always uses the time zone of the virtual machine.
Derby does not require that the application’s java.sql.Time value be normalized to Jan 1 1970 according to the required time zone.
In both cases no time zone information is stored with the SQL TIME value.
getTime() without a Calendar object or passing null for a Calendar object
A java.sql.Time instance is returned with a millisecond value corresponding to hh:mm:ss on Jan. 1 1970 according to the time zone of the java virtual machine
The toString() method of the returned value will return ‘hh:mm:ss’.
getTime() with a Calendar object
A java.sql.Time instance is returned with a millisecond value corresponding to hh:mm:ss on Jan. 1 1970 according to the time zone of the Calendar
The toString() method of the returned value may not return ‘hh:mm:ss’, since this method always uses the time zone of the virtual machine.
Three different time formats are built into Derby:
(ISO/EUR) hh.mm.ss e.g. “13.52.03”,
(IBM USA) hh:mm [AM|PM] e.g. “1:52 PM”, and
(JIS) hh:mm:ss e.g. “13:52:03”.
If the format of the string matches one of the built in formats then a conversion to a java.sql.Time matches that of a SQL TIME value with value hh:mm:ss.
If the string does not match any of the built in formats Derby attempts to use the Java locale specific parser to interpret the string as a date.
Derby’s SQL TIMESTAMP type represents a time of day in the form yyyy-mm-dd hh:mm:ss.fffffffff (nanosecond granularity) with no associated time zone information.
A JDBC Timestamp (java.sql.Timestamp) by definition represents a point in time, with nanosecond resolution, in a given time zone.
setTimestamp() without a Calendar object or passing null for a Calendar object
The year, month, day, hour, minute, and second values will be calculated from the milli-seconds value of the java.sql.Timestamp instance using a Calendar object set to the time zone of the virtual machine. The nanosecond value will be calculated from the nanoseconds value of the java.sql.Timestamp.
The timestamp component values will match the output of java.sql.Timestamp.toString().
setTime() with a Calendar object
The year, month, day, hour, minute, and second values will be calculated from the milliseconds value of the java.sql.Date instance using the passed in Calendar. The nanosecond value will be calculated from the nanoseconds value of the java.sql.Timestamp.
The code for this is
cal.setTimeInMillis(value.getTime());
year = cal.get(Calendar.YEAR);
month = cal.get(Calendar.MONTH) + 1;
day = cal.get(Calendar.DAY_OF_MONTH);
hour = cal.get(Calendar.HOUR);
minute = cal.get(Calendar.MINUTE);
second = cal.get(Calendar.SECOND);
nanos = value.getNanos();
This stored timestamp component value may not match the output of java.sql.Timestamp.toString() for the value, since this method always uses the time zone of the virtual machine.
getTimestamp() without a Calendar object or passing null for a Calendar object
A java.sql.Timestamp instance is returned with a nanosecond value corresponding to yyyy-mm-dd hh:mm:ss.fffffffff according to the time zone of the java virtual machine
The toString() method of the returned value will return ‘yyyy-mm-dd hh:mm:ss.fffffffff’.
getTime() with a Calendar object
A java.sql.Time instance is returned with a nanosecond value corresponding to yyyy-mm-dd hh:mm:ss.fffffffff according to the time zone of the Calendar
The toString() method of the returned value may not return ‘yyyy-mm-dd hh:mm:ss.fffffffff’, since this method always uses the time zone of the virtual machine.
Two different timestamp formats are built into Derby:
(ISO) yyyy-mm-dd hh:mm:ss[.ffffff]e.g. “1980-10-25 13:01:23.123456”, and
(IBM) yyyy-mm-dd-hh.mm.ss[.ffffff]e.g. “1980-10-25-13.01.23.123456”.
Note that only microsecond resolution is supported in converting strings to timestamps.
If the format of the string matches one of the built in formats then a conversion to a java.sql.Timestamp matches that of a SQL TIMESTAMP value with value yyyy-mm-dd hh:mm:ss.ffffff.
If the string does not match any of the built in formats Derby attempts to use the Java locale specific parser to interpret the string as a date.
|
Built on Wed 2007-08-01 06:53:39-0700, from revision 561794 | |||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |