Pessoal, criei um datasource no Tomcat e este Bean para conexão, minha dúvida estou utilizando corretamente a idéia de pool?
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import javax.servlet.*;
public class DBConnBean
{
public static Connection getConnection( ServletContext context )
{
Connection conn = null;
try
{
String datasource = context.getInitParameter( "datasource" );
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup( datasource );
if ( ds != null )
conn = ds.getConnection();
else
{
try
{
String driverClass = context.getInitParameter( "driverClass" );
String urlConnection = context.getInitParameter( "urlConnection" );
String username = context.getInitParameter( "username" );
String password = context.getInitParameter( "password" );
DriverManager.registerDriver( (Driver)Class.forName( driverClass ).newInstance() );
conn = DriverManager.getConnection( urlConnection, username, password );
} catch ( ClassNotFoundException cnfex ) {
System.out.println("ClassNotFoundException ocorreu ao criar uma conexao" +
" a partir dos parametros iniciais da aplicacao: " + cnfex.getMessage() );
cnfex.printStackTrace();
} catch ( IllegalAccessException iaex ) {
System.out.println("IllegalAccessException ocorreu ao criar uma conexao" +
" a partir dos parametros iniciais da aplicacao: " + iaex.getMessage() );
iaex.printStackTrace();
} catch ( InstantiationException iex ) {
System.out.println("InstantiationException ocorreu ao criar uma conexao" +
" a partir dos parametros iniciais da aplicacao: " + iex.getMessage() );
iex.printStackTrace();
}
}
} catch (NamingException nex) {
System.out.println("NamingException ocorreu ao criar uma conexao: " + nex.getMessage() );
nex.printStackTrace();
} catch (SQLException sqlex) {
System.out.println("SQLException ocorreu ao criar uma conexao:" + sqlex.getMessage() );
sqlex.printStackTrace();
}
if (conn == null)
throw new RuntimeException("Nao foi aberta a conexao com o bando de dados!!!");
return conn;
}
}