|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.jdbc.ReferenceableDataSource
org.apache.derby.jdbc.EmbeddedDataSource
EmbeddedDataSource is Derby's DataSource implementation.
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).
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");
Field Summary | |
private boolean |
attributesAsPassword
Set password to be a set of connection attributes. |
private java.lang.String |
connectionAttributes
Derby specific connection attributes. |
private java.lang.String |
createDatabase
Set to "create" if the database should be created. |
private java.lang.String |
databaseName
The database name. |
private java.lang.String |
dataSourceName
The data source name. |
private java.lang.String |
description
Description of the database. |
protected InternalDriver |
driver
|
private java.lang.String |
jdbcurl
|
private int |
loginTimeout
|
private java.io.PrintWriter |
printer
instance variables that will not be serialized |
private static long |
serialVersionUID
|
private java.lang.String |
shutdownDatabase
Set to "shutdown" if the database should be shutdown. |
Fields inherited from class org.apache.derby.jdbc.ReferenceableDataSource |
|
Constructor Summary | |
EmbeddedDataSource()
No-arg constructor. |
Method Summary | |
boolean |
equals(java.lang.Object p0)
|
(package private) InternalDriver |
findDriver()
|
boolean |
getAttributesAsPassword()
Return the value of the attributesAsPassword property. |
java.sql.Connection |
getConnection()
Attempt to establish a database connection. |
java.sql.Connection |
getConnection(java.lang.String username,
java.lang.String password)
Attempt to establish a database connection with the given username and password. |
(package private) java.sql.Connection |
getConnection(java.lang.String username,
java.lang.String password,
boolean requestPassword)
Return a connection for the Cloudscape family of data source implementations. |
java.lang.String |
getConnectionAttributes()
|
java.lang.String |
getCreateDatabase()
|
java.lang.String |
getShutdownDatabase()
|
void |
setAttributesAsPassword(boolean attributesAsPassword)
Set attributeAsPassword property to enable passing connection request attributes in the password argument of getConnection. |
void |
setConnectionAttributes(java.lang.String prop)
Set this property to pass in more Derby specific connection URL attributes. |
void |
setCreateDatabase(java.lang.String create)
Set this property to create a new database. |
void |
setShutdownDatabase(java.lang.String shutdown)
Set this property if one wishes to shutdown the database identified by databaseName. |
(package private) void |
update()
|
Methods inherited from class org.apache.derby.jdbc.ReferenceableDataSource |
getDatabaseName, getDataSourceName, getDescription, getLoginTimeout, getLogWriter, getObjectInstance, getPassword, getReference, getUser, setDatabaseName, setDataSourceName, setDescription, setLoginTimeout, setLogWriter, setPassword, setUser |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.sql.DataSource |
getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter |
Field Detail |
private static final long serialVersionUID
private java.lang.String databaseName
private java.lang.String dataSourceName
private java.lang.String description
private java.lang.String createDatabase
private java.lang.String shutdownDatabase
private java.lang.String connectionAttributes
private boolean attributesAsPassword
private transient java.io.PrintWriter printer
private transient int loginTimeout
protected transient InternalDriver driver
private transient java.lang.String jdbcurl
Constructor Detail |
public EmbeddedDataSource()
Method Detail |
public boolean equals(java.lang.Object p0)
public final void setCreateDatabase(java.lang.String create)
create
- if set to the string "create", this data source will try
to create a new database of databaseName, or boot the database if one
by that name already exists.public final java.lang.String getCreateDatabase()
public final void setShutdownDatabase(java.lang.String shutdown)
shutdown
- if set to the string "shutdown", this data source will
shutdown the database if it is running.public final java.lang.String getShutdownDatabase()
public final void setConnectionAttributes(java.lang.String prop)
prop
- set to the list of Derby connection
attributes separated by semi-colons. E.g., to specify an encryption
bootPassword of "x8hhk2adf", and set upgrade to true, do the following:
ds.setConnectionAttributes("bootPassword=x8hhk2adf;upgrade=true");See the Derby documentation for complete list.
public final java.lang.String getConnectionAttributes()
public final void setAttributesAsPassword(boolean attributesAsPassword)
attributesAsPassword
- true to encode password argument as a set of connection attributes in a connection request.public final boolean getAttributesAsPassword()
public final java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
java.sql.SQLException
- if a database-access error occurs.public final java.sql.Connection getConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
username
- the database user on whose behalf the Connection is
being madepassword
- the user's password
java.sql.SQLException
- if a database-access error occurs.final java.sql.Connection getConnection(java.lang.String username, java.lang.String password, boolean requestPassword) throws java.sql.SQLException
ReferenceableDataSource
getConnection
in class ReferenceableDataSource
requestPassword
- true if the password came from the getConnection() call.
java.sql.SQLException
InternalDriver findDriver() throws java.sql.SQLException
java.sql.SQLException
void update()
update
in class ReferenceableDataSource
|
Built on Tue 2006-10-10 19:23:47+0200, from revision exported | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |