JAVA POOL DATASOURCES desde TOMCAT !!
Vamos a ver cómo configurar un Datasource (conexión a Base de datos) para acceder a él desde nuestro código, pero configurado en Tomcat. Además, contaremos con un POOL de conexiones, de manera que los accesos a base de datos serán más eficientes.
En el fichero /conf/context.xml de TOMCAT, dentro de la sentencia <Context>, añadir el datasource:
<Resource name="jdbc/ConexionMySQL" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="10" maxWait="5000"
username="xxxxx" password="xxxx#" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://xxxxxxxx:3306/xxxxxxx"/>
Por otro lado, en el /WEB-INF/web.xml, añadir lo siguiente dentro de <web-app>
<resource-ref>
<description>Pool conexiones MySQL</description>
<res-ref-name>jdbc/ConexionMySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<description>Pool conexiones MySQL</description>
<res-ref-name>jdbc/ConexionMySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Por último, así es como se obtiene conexión
public boolean conectar() {
Context initContext;
try {
initContext = new InitialContext();
DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/ConexionMySQL");
myCon = ds.getConnection();
return true;
} catch (SQLException ex) {
logger.error("Error (" + ex.getErrorCode() + "): " + ex.getMessage());
return false;
} catch (NamingException ex) {
logger.error("Error al intentar obtener el DataSource: " + ex.getMessage());
return false;
}
}
Context initContext;
try {
initContext = new InitialContext();
DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/ConexionMySQL");
myCon = ds.getConnection();
return true;
} catch (SQLException ex) {
logger.error("Error (" + ex.getErrorCode() + "): " + ex.getMessage());
return false;
} catch (NamingException ex) {
logger.error("Error al intentar obtener el DataSource: " + ex.getMessage());
return false;
}
}