|
Connexion à une base de données avec une DataSource.
Il faut lancer un process rmid. On reference ensuite une entrée ODBC "mybase". L'accès à cette base va pouvoir se faire avec LDAP.
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
public class JNDIDataSource {
public static void main(String[] args) throws Exception {
Properties env = System.getProperties();
env.put("java.naming.factory.initial",
"com.sun.jndi.rmi.registry.RegistryContextFactory");
env.put("java.naming.provider.url","rmi://localhost:1099");
Context c = new InitialContext( env );
sun.jdbc.odbc.ee.DataSource ds = new sun.jdbc.odbc.ee.DataSource();
ds.setDatabaseName("mybase");
InitialContext ic = new InitialContext();
System.out.println( "BIND with jdbc/DB1" );
ic.bind("jdbc/DB1",ds);
}
Exemple de code pour établir la connexion
private void ouvrirConnexion() throws SQLException, NamingException {
Properties env = System.getProperties();
env.put("java.naming.factory.initial",
"com.sun.jndi.rmi.registry.RegistryContextFactory");
env.put("java.naming.provider.url","rmi://localhost:1099");
Context c = new InitialContext( env );
DataSource ds = ( DataSource )c.lookup( "jdbc/DB1" );
connexion = ds.getConnection();
}
|