This data source is suitable for an application using embedded Derby, running on full Java SE 6 and higher, corresponding to 4.0 and higher.
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.
Use BasicEmbeddedDataSource40 if your application runs on Java 8 Compact Profile 2.
The following is a list of properties that can be set on a Derby DataSource object:
Standard DataSource properties (from JDBC 3.0 specification).
databaseName (String): Mandatory
setDatabaseName("g:/db/wombat") on the data source object.dataSourceName (String): Optional
description (String): Optional
password (String): Optional
DataSource.getConnection(),
ConnectionPoolDataSource.getPooledConnection()
and XADataSource.getXAConnection() methods.
user (String): Optional
DataSource.getConnection(),
ConnectionPoolDataSource.getPooledConnection()
and XADataSource.getXAConnection() methods.
attributesAsPassword (Boolean): Optional
DataSource.getConnection(String user, String password),
ConnectionPoolDataSource.getPooledConnection(String user, String password)
or XADataSource.getXAConnection(String user, String password) as a set
of connection attributes. The format of the attributes is the same as the format
of the attributes in the property connectionAttributes. If false the password value
is treated normally as the password for the given user.
Setting this property to true allows a connection request from an application to
provide more authentication information that just a password, for example the request
can include the user's password and an encrypted database's boot password.connectionAttributes (String): Optional
attribute=value, each separated by semi-colon (';').
E.g. setConnectionAttributes("bootPassword=erd3234dggd3kazkj3000");.
databaseName and not by setting the databaseName
connection attribute in the connectionAttributes property.
createDatabase (String): Optional
databaseName if that database does not already
exist. The database is created when a connection object is obtained from
the data source. shutdownDatabase (String): Optional
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");
| Modifier and Type | Field and Description |
|---|---|
| private static final long |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| private static void | addBeanProperties(Object
this objectThe reference to add properties to ref)Add Java Bean properties to the reference using StringRefAddr for each property. |
| public Object | getObjectInstance(Object
the possibly refObj, Name null object containing location or
reference information that can be used in creating an objectthe name of this object relative to name, Context nameContext, or
null if no name is specifiedcontext relative to which the name parameter is
specified, or nameContext, Hashtable<?, ?> null if name is relative to the default
initial context.possibly environment)null environment that is used in
creating the object.Overrides org. Implements javax. |
| public final Reference | Returns: the created reference object for this data sourceImplements javax. Reference object to represent this
data source.
|
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID Hides org. | |
| EmbeddedDataSource | back to summary |
|---|---|
| public EmbeddedDataSource() No-arg constructor. | |
| addBeanProperties | back to summary |
|---|---|
| private static void addBeanProperties(Object ths, Reference ref) Add Java Bean properties to the reference using
StringRefAddr for each property. List of bean properties
is defined from the public getXXX() methods on this object
that take no arguments and return short, int, boolean or String.
The | |
| getObjectInstance | back to summary |
|---|---|
| public Object getObjectInstance(Object refObj, Name name, Context nameContext, Hashtable<?, ?> environment) throws Exception Overrides org. Implements javax. Doc from org. Reconstructs a Derby embedded-driver data source object from a JNDI data source reference.
The
| |
| getReference | back to summary |
|---|---|
| public final Reference getReference() throws NamingException Implements javax. This method creates a new
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
| |