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).

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:

  1. Derby does not support named parameters for CallableStatement.

  2. 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

getN!CharacterStream(int)

B

B

getN!CharacterStream(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

setBytes(String,byte[])

A

A

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

setN!CharacterStream(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

Connection

createArrayOf(String,Object[])

B

B

createNClob()

B

B

createSQLXML()

B

B

createStruct(String,Object[])

B

B

prepareStatement(String,int[])

Unsupported

Unsupported

prepareStatement(String,String[])

Unsupported

Unsupported

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

setN!CharacterStream(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

getN!CharacterStream(int)

B

B

getN!CharacterStream(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

updateN!CharacterStream(int,java.io.Reader,int)

B

B

updateN!CharacterStream(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

execute(String,int[])

Unsupported

Unsupported

execute(String,String[])

Unsupported

Unsupported

executeUpdate(String,int[])

Unsupported

Unsupported

executeUpdate(String,String[])

Unsupported

Unsupported

Struct

all methods

B

B

JDBCSupport (last edited 2011-03-15 08:16:09 by KristianWaagan)