org.apache.derby.jdbc
Class ClientDataSource40
java.lang.Object
org.apache.derby.jdbc.ClientBaseDataSourceRoot
org.apache.derby.jdbc.ClientBaseDataSource
org.apache.derby.jdbc.ClientDataSource
org.apache.derby.jdbc.ClientDataSource40
- All Implemented Interfaces:
- java.io.Serializable, java.sql.Wrapper, javax.naming.Referenceable, javax.sql.CommonDataSource, javax.sql.DataSource, ClientDataSourceInterface
public class ClientDataSource40
- extends ClientDataSource
- implements javax.sql.DataSource
This datasource is suitable for a client/server use of Derby,
running on the following platforms:
- Java SE 7 (JDBC 4.1) and
- full Java SE 8 (JDBC 4.2).
Use BasicClientDataSource40 if your application runs on Java 8
Compact Profile 2.
Use ClientDataSource if your application runs on the following
platforms:
- JDBC 4.0 - Java SE 6
- JDBC 3.0 - J2SE 5.0
ClientDataSource40 is a simple data source implementation
that can be used for establishing connections in a
non-pooling, non-distributed environment.
The class ClientConnectionPoolDataSource40 can be used in a connection pooling environment,
and the class ClientXADataSource40 can be used in a distributed, and pooling
environment.
The example below registers a DNC data source object with a JNDI naming service.
org.apache.derby.client.ClientDataSource40 dataSource = new org.apache.derby.client.ClientDataSource40 ();
dataSource.setServerName ("my_derby_database_server");
dataSource.setDatabaseName ("my_derby_database_name");
javax.naming.Context context = new javax.naming.InitialContext();
context.bind ("jdbc/my_datasource_name", dataSource);
The first line of code in the example creates a data source object.
The next two lines initialize the data source's
properties. Then a Java object that references the initial JNDI naming
context is created by calling the
InitialContext() constructor, which is provided by JNDI.
System properties (not shown) are used to tell JNDI the
service provider to use. The JNDI name space is hierarchical,
similar to the directory structure of many file
systems. The data source object is bound to a logical JNDI name
by calling Context.bind(). In this case the JNDI name
identifies a subcontext, "jdbc", of the root naming context
and a logical name, "my_datasource_name", within the jdbc
subcontext. This is all of the code required to deploy
a data source object within JNDI. This example is provided
mainly for illustrative purposes. We expect that developers
or system administrators will normally use a GUI tool to
deploy a data source object.
Once a data source has been registered with JNDI,
it can then be used by a JDBC application, as is shown in the
following example.
javax.naming.Context context = new javax.naming.InitialContext ();
javax.sql.DataSource dataSource = (javax.sql.DataSource) context.lookup ("jdbc/my_datasource_name");
java.sql.Connection connection = dataSource.getConnection ("user", "password");
The first line in the example creates a Java object
that references the initial JNDI naming context. Next, the
initial naming context is used to do a lookup operation
using the logical name of the data source. The
Context.lookup() method returns a reference to a Java Object,
which is narrowed to a javax.sql.DataSource object. In
the last line, the DataSource.getConnection() method
is called to produce a database connection.
This simple data source subclass of ClientBaseDataSource maintains
it's own private password property.
The specified password, along with the user, is validated by DERBY.
This property can be overwritten by specifing
the password parameter on the DataSource.getConnection() method call.
This password property is not declared transient, and therefore
may be serialized to a file in clear-text, or stored
to a JNDI server in clear-text when the data source is saved.
Care must taken by the user to prevent security
breaches.
- See Also:
- Serialized Form
| Fields inherited from interface org.apache.derby.jdbc.ClientDataSourceInterface |
CLEAR_TEXT_PASSWORD_SECURITY, ENCRYPTED_PASSWORD_SECURITY, ENCRYPTED_USER_AND_PASSWORD_SECURITY, propertyDefault_portNumber, propertyDefault_retrieveMessageText, propertyDefault_securityMechanism, propertyDefault_serverName, propertyDefault_traceFileAppend, propertyDefault_traceLevel, propertyDefault_user, STRONG_PASSWORD_SUBSTITUTE_SECURITY, TRACE_ALL, TRACE_CONNECTION_CALLS, TRACE_CONNECTS, TRACE_DIAGNOSTICS, TRACE_DRIVER_CONFIGURATION, TRACE_NONE, TRACE_PARAMETER_META_DATA, TRACE_PROTOCOL_FLOWS, TRACE_RESULT_SET_CALLS, TRACE_RESULT_SET_META_DATA, TRACE_STATEMENT_CALLS, TRACE_XA_CALLS, USER_ONLY_SECURITY |
| Methods inherited from class org.apache.derby.jdbc.ClientBaseDataSourceRoot |
computeDncLogWriter, computeDncLogWriter, computeDncLogWriterForNewConnection, computeDncLogWriterForNewConnection, computePrintWriter, getClientSSLMode, getConnection, getConnection, getConnectionAttributes, getCreateDatabase, getDatabaseName, getDataSourceName, getDescription, getLoginTimeout, getLogWriter, getPassword, getPassword, getPooledConnectionMinion, getPooledConnectionMinion, getPortNumber, getProperties, getRetrieveMessageText, getRetrieveMessageText, getSecurityMechanism, getSecurityMechanism, getSecurityMechanism, getServerName, getShutdownDatabase, getSsl, getSSLModeFromString, getTraceDirectory, getTraceDirectory, getTraceFile, getTraceFile, getTraceFileAppend, getTraceFileAppend, getTraceLevel, getTraceLevel, getUpgradedSecurityMechanism, getUser, getUser, getXAConnectionMinion, getXAConnectionMinion, handleConnectionException, isWrapperFor, maxStatementsToPool, setConnectionAttributes, setCreateDatabase, setDatabaseName, setDataSourceName, setDescription, setLoginTimeout, setLogWriter, setPassword, setPortNumber, setRetrieveMessageText, setSecurityMechanism, setServerName, setShutdownDatabase, setSsl, setTraceDirectory, setTraceFile, setTraceFileAppend, setTraceLevel, setUser, tokenizeAttributes, unwrap, updateDataSourceValues |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface javax.sql.DataSource |
getConnection, getConnection |
| Methods inherited from interface javax.sql.CommonDataSource |
getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter |
| Methods inherited from interface java.sql.Wrapper |
isWrapperFor, unwrap |
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
ClientDataSource40
public ClientDataSource40()
getParentLogger
public java.util.logging.Logger getParentLogger()
throws java.sql.SQLFeatureNotSupportedException
- Throws:
java.sql.SQLFeatureNotSupportedException
Apache Derby V10.10 Internals - Copyright © 2004,2013 The Apache Software Foundation. All Rights Reserved.