This is the first attempt of describing what JDBC functionality is lacking in Derby. The content will need some time to evolve and stabilize. If you see errors, please provide feedback to derby-user@db.apache.org!
Since JDBC is the interface Derby is meant to be used with, the aim is obviously to support as much as possible of it. However, Derby's JDBC implementation is not complete. As new revisions of the JDBC specification are published, there will also be a certain delay between new specifications and the implementation of these in Derby.
The current content does not separate between the different JDBC revisions, and the JDBC 4 revision is used as reference.
Datatype support
The datatypes listed below are not supported in Derby. Note that not all of them have a corresponding class in JDBC (for instance, a getNString returns a Java String).
- Array (DERBY-4335?)
- Datalink
- NClob
- NString
- Ref
- RowId
- SQLXML (DERBY-5075)
- Struct
- URL
Unsupported JDBC interface methods
Legend:
Not supported |
Simply not supported or implemented. Consider adding a Jira issue requesting the feature/method if you must have it! If a Jira is created, the number will be recorded here (you can even do it when you add the Jira!). |
Unsupported for a reason |
To group methods that are unsupported for the same reason. Reason will be indicated by a letter. |
In progress |
Corresponding Jira issue will be recorded for these. Should only be used for active jiras, which means the feature is believed to be supported within "reasonable time". |
Reasons why methods are unsupported:
- Derby does not support named parameters for CallableStatement.
- Derby does not support the datatype at all (yet).
The methods are ordered alphabetically on JDBC interface and method name. Note that inherited methods are listed under the implementation class. If you can't find a method you expected to find in a given interface, first look for it in the super-interface.
JDBC interface |
Method |
Embedded |
Client |
Related Jira issues |
Comment |
||
Array |
all methods |
B |
B |
|
|
||
CallableStatement |
getArray(int) |
B |
B |
|
|
||
|
getArray(String) |
A - B |
A - B |
|
Bogus implementation on client |
||
|
getBigDecimal(String) |
A |
A |
|
|
||
|
getBlob(String) |
A |
A |
|
|
||
|
getBoolean(String) |
A |
A |
|
|
||
|
getByte(String) |
A |
A |
|
|
||
|
getBytes(String) |
A |
A |
|
|
||
|
getCharacterStream(String) |
A |
A |
|
|
||
|
getClob(String) |
A |
A |
|
|
||
|
getDate(String) |
A |
A |
|
|
||
|
getDate(String,java.util.Calendar) |
A |
A |
|
|
||
|
getDouble(String) |
A |
A |
|
|
||
|
getFloat(String) |
A |
A |
|
|
||
|
getInt(String) |
A |
A |
|
|
||
|
getLong(String) |
A |
A |
|
|
||
|
getNCharacterStream(int) |
B |
B |
|
|
||
|
getNCharacterStream(String) |
A - B |
A - B |
|
|
||
|
getNClob(int) |
B |
B |
|
|
||
|
getNClob(String) |
A - B |
A - B |
|
|
||
|
getNString(int) |
B |
B |
|
|
||
|
getNString(String) |
A - B |
A - B |
|
|
||
|
getObject(String) |
A |
A |
|
|
||
|
getObject(int,java.util.Map) |
Unsupported |
Unsupported |
|
Unsupported if map != null. Bogus implementation on client |
||
|
getRef(int) |
B |
B |
|
Bogus implementation on client |
||
|
getRef(String) |
A - B |
A - B |
|
|
||
|
getRowId(int) |
B |
B |
|
|
||
|
getRowId(String) |
A - B |
A - B |
|
|
||
|
getSQLXML(int) |
B |
B |
|
|
||
|
getSQLXML(String) |
A - B |
A - B |
|
|
||
|
getShort(String) |
A |
A |
|
|
||
|
getString(String) |
A |
A |
|
|
||
|
getTime(String) |
A |
A |
|
|
||
|
getTime(String,java.util.Calendar) |
A |
A |
|
|
||
|
getTimestamp(String) |
A |
A |
|
|
||
|
getTimestamp(String,java.util.Calendar) |
A |
A |
|
|
||
|
getURL(int) |
B |
B |
|
|
||
|
getURL(String) |
A - B |
A - B |
|
|
||
|
registerOutParameter(int,int,String) |
A |
A |
|
|
||
|
registerOutParameter(String,int) |
A |
A |
|
|
||
|
registerOutParameter(String,int,int) |
A |
A |
|
|
||
|
registerOutParameter(String,int,String) |
A |
A |
|
|
||
|
setAsciiStream(String,java.io.InputStream,int) |
A |
A |
|
|
||
|
setBigDecimal(String,java.math.BigDecimal) |
A |
A |
|
|
||
|
setBinaryStream(String,java.io.InputStream,int) |
A |
A |
|
|
||
|
setBlob(String,java.io.InputStream,long) |
A |
A |
|
|
||
|
setBlob(String,java.sql.Blob) |
A |
A |
|
|
||
|
setBoolean(String,boolean) |
A |
A |
|
|
||
|
setByte(String,byte) |
A |
A |
|
|
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="4c60b8f9-8f2b-418e-a252-0a6edf675dd4"><ac:plain-text-body><![CDATA[ |
|
setBytes(String,byte[]) |
A |
A |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
|
setCharacterStream(String,java.io.Reader,int) |
A |
A |
|
|
||
|
setClob(String,java.io.Reader,long) |
A |
A |
|
|
||
|
setClob(String,java.sql.Clob) |
A |
A |
|
|
||
|
setDate(String,java.sql.Date) |
A |
A |
|
|
||
|
setDate(String,java.sql.Date,java.util.Calendar) |
A |
A |
|
|
||
|
setDouble(String,double) |
A |
A |
|
|
||
|
setFloat(String,float) |
A |
A |
|
|
||
|
setInt(String,int) |
A |
A |
|
|
||
|
setLong(String,long) |
A |
A |
|
|
||
|
setNCharacterStream(String,java.io.Reader,long) |
A - B |
A - B |
|
|
||
|
setNClob(String,java.io.Reader,long) |
A - B |
A - B |
|
|
||
|
setNClob(String,java.sql.NClob) |
A - B |
A - B |
|
|
||
|
setNString(String,String) |
A - B |
A - B |
|
|
||
|
setNull(String,int) |
A |
A |
|
|
||
|
setNull(String,int,String) |
A |
A |
|
|
||
|
setObject(String,Object) |
A |
A |
|
|
||
|
setObject(String,Object,int) |
A |
A |
|
|
||
|
setObject(String,Object,int,int) |
A |
A |
|
|
||
|
setRowId(String,java.sql.RowId) |
A - B |
A - B |
|
|
||
|
setSQLXML(String,java.sql.SQLXML) |
A - B |
A - B |
|
|
||
|
setShort(String,short) |
A |
A |
|
|
||
|
setString(String,String) |
A |
A |
|
|
||
|
setTime(String,java.sql.Time) |
A |
A |
|
|
||
|
setTime(String,java.sql.Time,java.util.Calendar) |
A |
A |
|
|
||
|
setTimestamp(String,java.sql.Timestamp) |
A |
A |
|
|
||
|
setTimestamp(String,java.sql.Timestamp,java.util.Calendar) |
A |
A |
|
|
||
|
setURL(String,java.net.URL) |
A - B |
A - B |
|
|
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="9a993715-a746-4898-bd19-5b354c00347a"><ac:plain-text-body><![CDATA[ |
Connection |
createArrayOf(String,Object[]) |
B |
B |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
|
createNClob() |
B |
B |
|
|
||
|
createSQLXML() |
B |
B |
|
|
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="6639cdad-1670-4add-a38b-12ff4e120435"><ac:plain-text-body><![CDATA[ |
|
createStruct(String,Object[]) |
B |
B |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="ea2fab0c-1614-4442-afb2-c5e9d0719ba2"><ac:plain-text-body><![CDATA[ |
|
prepareStatement(String,int[]) |
Unsupported |
Unsupported |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="149e60b7-c293-40d4-833a-7cc9c964d027"><ac:plain-text-body><![CDATA[ |
|
prepareStatement(String,String[]) |
Unsupported |
Unsupported |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
NClob |
all methods |
B |
B |
|
NClob only inherit methods from Clob, it has no methods of its own. |
||
PreparedStatement |
setArray(int,java.sql.Array) |
B |
B |
|
|
||
|
setNCharacterStream(int,java.io.Reader,long) |
B |
B |
|
|
||
|
setNClob(int,java.io.Reader,long) |
B |
B |
|
|
||
|
setNClob(int,java.sql.NClob) |
B |
B |
|
|
||
|
setNString(int,String) |
B |
B |
|
|
||
|
setRef(int,java.sql.Ref) |
B |
B |
|
|
||
|
setRowId(int,java.sql.RowId) |
B |
B |
|
|
||
|
setSQLXML(int,java.sql.SQLXML) |
B |
B |
|
|
||
|
setURL(int,java.net.URL) |
B |
B |
|
|
||
|
setUnicodeStream(int,java.io.InputStream,int) |
Unsupported |
Unsupported |
|
Deprecated. |
||
Ref |
all methods |
B |
B |
|
|
||
ResultSet |
getArray(int) |
B |
B |
|
|
||
|
getArray(String) |
B |
B |
|
Bogus implementation on client |
||
|
getNCharacterStream(int) |
B |
B |
|
|
||
|
getNCharacterStream(String) |
B |
B |
|
|
||
|
getNClob(int) |
B |
B |
|
|
||
|
getNClob(String) |
B |
B |
|
|
||
|
getNString(int) |
B |
B |
|
|
||
|
getNString(String) |
B |
B |
|
|
||
|
getObject(int columnIndex,java.util.Map map) |
Unsupported |
Unsupported |
|
Unsupported if map != null. Bogus implementation on client |
||
|
getObject(String,java.util.Map) |
Unsupported |
Unsupported |
|
Unsupported if map != null. Bogus implementation on client |
||
|
getRef(int) |
B |
B |
|
Bogus implementation on client |
||
|
getRef(String) |
B |
B |
|
|
||
|
getRowId(int) |
B |
B |
|
|
||
|
getRowId(String) |
B |
B |
|
|
||
|
getSQLXML(int) |
B |
B |
|
|
||
|
getSQLXML(String) |
B |
B |
|
|
||
|
getURL(int) |
B |
B |
|
|
||
|
getURL(String) |
B |
B |
|
|
||
|
getUnicodeStream(int) |
Unsupported |
Unsupported |
|
Deprecated. Use getCharacterStream instead. |
||
|
getUnicodeStream(String) |
Unsupported |
Unsupported |
|
Deprecated. Use getCharacterStream instead. |
||
|
updateArray(int,java.sql.Array) |
B |
B |
|
|
||
|
updateArray(String,java.sql.Array) |
B |
B |
|
|
||
|
updateNCharacterStream(int,java.io.Reader,int) |
B |
B |
|
|
||
|
updateNCharacterStream(String,java.io.Reader,int) |
B |
B |
|
|
||
|
updateNClob(int,java.sql.NClob) |
B |
B |
|
|
||
|
updateNClob(String,java.sql.NClob) |
B |
B |
|
|
||
|
updateNString(int,String) |
B |
B |
|
|
||
|
updateNString(String,String) |
B |
B |
|
|
||
|
updateRef(int,java.sql.Ref) |
B |
B |
|
|
||
|
updateRef(String,java.sql.Ref) |
B |
B |
|
|
||
|
updateRowId(int,java.sql.RowId) |
B |
B |
|
|
||
|
updateRowId(String,java.sql.RowId) |
B |
B |
|
|
||
|
updateSQLXML(int,java.sql.SQLXML) |
B |
B |
|
|
||
|
updateSQLXML(String,java.sql.SQLXML) |
B |
B |
|
|
||
RowId |
all methods |
B |
B |
|
|
||
SQLXML |
all methods |
B |
B |
|
|
||
Statement |
cancel() |
Unsupported |
Unsupported |
|
|
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="b943415a-095c-4973-bbd7-5b02cef61e2a"><ac:plain-text-body><![CDATA[ |
|
execute(String,int[]) |
Unsupported |
Unsupported |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="94c699c0-8423-49de-976f-9754e1ded4ee"><ac:plain-text-body><![CDATA[ |
|
execute(String,String[]) |
Unsupported |
Unsupported |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="e054e0a2-8bc5-4285-9aeb-1ef9a1758aaf"><ac:plain-text-body><![CDATA[ |
|
executeUpdate(String,int[]) |
Unsupported |
Unsupported |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="e745e8c6-bb1b-4818-b6d5-5544a3463309"><ac:plain-text-body><![CDATA[ |
|
executeUpdate(String,String[]) |
Unsupported |
Unsupported |
|
|
]]></ac:plain-text-body></ac:structured-macro> |
Struct |
all methods |
B |
B |
|
|