El problema es q no es tan fácil y la realización depende del vendedor de la BD: Oracle tiene su manera de gestionarlo, WebSphere - la suya, Tomcat - la suya etc.
Es q vale realmente la pena el rollo?
Yo consejería 2 posibilidades. Para pequeños proyectos y para probar algo rapidito - no nos enrollamos y hacemos a la manera fácil:
- con BasicDataSource:
BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName("oracle.jdbc.driver.OracleDriver"); ds.setUsername("scott"); ds.setPassword("tiger"); ds.setUrl(URL); ds.getConnection();
o con DriverManager:
Class.forName(DRIVER); java.sql.Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
Para cosas serias, donde habrá acceso mucha gente, tendremos que pensar en la velocidad o rendimiento. En 99% de casos el pool de las conexiones no es nada difícil y se hace en 2 pasos siguientes:
- Servidor: lee el manual! Debe haber una pagina de la configuración (p.e. para IBM Websphere o Glassfish) o un file xml (para Tomcat hay un file server.xml) donde configuramos el recurso JNDI DataSource y adaptamos a nuestras necesidades, nuestra BD, etc:
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cdcol"/>
- Aplicación: en web.xml hay q insertar el tag <resource-ref> :<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
luego en el código Java obtenemos la conexión a traverso de "lookup":Context ctx=new InitialContext(); Context envContext = (Context)ctx.lookup("java:comp/env"); DataSource ds=(DataSource)envContext.lookup("jdbc/TestDB");//TestDB is the Database Name con=ds.getConnection();
Y ahí lo tienes!
P.S En general el "context.lookup()" nos permite de obtener varias cosas, no solo la conexion BD. P.e. una cola (queue) o topic en caso de JMS para enviar los mensajes. Pero esos temas miraremos otra vez que son grandes y yo quiero ir pa casa. Buen finde!
No hay comentarios:
Publicar un comentario