Apache Derby 10.10

org.apache.derby.jdbc
Class EmbeddedDataSource

java.lang.Object
  extended by org.apache.derby.jdbc.EmbeddedBaseDataSource
      extended by org.apache.derby.jdbc.ReferenceableDataSource
          extended by org.apache.derby.jdbc.EmbeddedDataSource
All Implemented Interfaces:
java.io.Serializable, javax.naming.Referenceable, javax.naming.spi.ObjectFactory, javax.sql.DataSource, org.apache.derby.jdbc.EmbeddedDataSourceInterface
Direct Known Subclasses:
EmbeddedConnectionPoolDataSource, EmbeddedXADataSource

public class EmbeddedDataSource
extends org.apache.derby.jdbc.ReferenceableDataSource
implements javax.naming.Referenceable

This datasource is suitable for an application using embedded Derby, running on full Java SE 5 or 6, corresponding to JDBC 3.0 and 4.0. If running on Java SE 7 or higher, consider a more capable data source.

A DataSource is a factory for Connection objects. An object that implements the DataSource interface will typically be registered with a JNDI service provider.

EmbeddedDataSource automatically supports the correct JDBC specification version for the Java Virtual Machine's environment.

The following is a list of properties that can be set on a Derby DataSource object:

Standard DataSource properties (from JDBC 3.0 specification).


Derby specific DataSource properties.

Examples.

This is an example of setting a property directly using Derby's EmbeddedDataSource object. This code is typically written by a system integrator :

 

 import org.apache.derby.jdbc.*;

 // dbname is the database name
 // if create is true, create the database if necessary
 javax.sql.DataSource makeDataSource (String dbname, boolean create)
        throws Throwable 
 { 
        EmbeddedDataSource ds = new EmbeddedDataSource(); 
        ds.setDatabaseName(dbname);

        if (create)
                ds.setCreateDatabase("create");
   
        return ds;
 }
        

Example of setting properties thru reflection. This code is typically generated by tools or written by a system integrator:

        
 javax.sql.DataSource makeDataSource(String dbname) 
        throws Throwable 
 {
        Class[] parameter = new Class[1];
        parameter[0] = dbname.getClass();
        DataSource ds =  new EmbeddedDataSource();
        Class cl = ds.getClass();

        Method setName = cl.getMethod("setDatabaseName", parameter);
        Object[] arg = new Object[1];
        arg[0] = dbname;
        setName.invoke(ds, arg);

        return ds;
 }
        

Example on how to register a data source object with a JNDI naming service.

 DataSource ds = makeDataSource("mydb");
 Context ctx = new InitialContext();
 ctx.bind("jdbc/MyDB", ds);
        

Example on how to retrieve a data source object from a JNDI naming service.

 Context ctx = new InitialContext();
 DataSource ds = (DataSource)ctx.lookup("jdbc/MyDB");
        

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.derby.jdbc.EmbeddedBaseDataSource
attributesAsPassword, connectionAttributes, createDatabase, databaseName, dataSourceName, description, driver, jdbcurl, loginTimeout, shutdownDatabase
 
Constructor Summary
EmbeddedDataSource()
          No-arg constructor.
 
Method Summary
 javax.naming.Reference getReference()
          This method creates a new Reference object to represent this data source.
 
Methods inherited from class org.apache.derby.jdbc.ReferenceableDataSource
getObjectInstance
 
Methods inherited from class org.apache.derby.jdbc.EmbeddedBaseDataSource
equals, getAttributesAsPassword, getConnection, getConnection, getConnectionAttributes, getCreateDatabase, getDatabaseName, getDataSourceName, getDescription, getLoginTimeout, getLogWriter, getPassword, getShortDatabaseName, getShutdownDatabase, getUser, isWrapperFor, setAttributesAsPassword, setConnectionAttributes, setCreateDatabase, setDatabaseName, setDataSourceName, setDescription, setLoginTimeout, setLogWriter, setPassword, setShutdownDatabase, setupResourceAdapter, setUser, unwrap, update
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EmbeddedDataSource

public EmbeddedDataSource()
No-arg constructor.

Method Detail

getReference

public final javax.naming.Reference getReference()
                                          throws javax.naming.NamingException
This method creates a new Reference object to represent this data source. The class name of the data source object is saved in the Reference, so that an object factory will know that it should create an instance of that class when a lookup operation is performed. The class is also stored in the reference. This is not required by JNDI, but is recommend in practice. JNDI will always use the object factory class specified in the reference when reconstructing an object, if a class name has been specified. See the JNDI SPI documentation for further details on this topic, and for a complete description of the Reference and StringRefAddr classes.

Derby data source classes class provides several standard JDBC properties. The names and values of the data source properties are also stored in the reference using the StringRefAddr class. This is all the information needed to reconstruct an embedded data source object.

Specified by:
getReference in interface javax.naming.Referenceable
Returns:
the created reference object for this data source
Throws:
javax.naming.NamingException - cannot find named object

Built on Wed 2013-06-12 15:21:56+0000, from revision ???

Apache Derby 10.10 API Documentation - Copyright © 2004,2013 The Apache Software Foundation. All Rights Reserved.