para manejar un pool de conexion yo trabajo de la siguiente manera (a ver si te sirve, en mi caso me conecto con sql server 7.0 y con tomcat)..
1ro
declaro en el turbineResource.properties el string de conexion
Código PHP:
## Database SQL Server
database.conector.driver=com.inet.tds.TdsDriver
database.conector.url=jdbc:servidor:1433?database=mi_base
database.conector.username=sa
database.conector.password=
2do
cree una clase que maneja el pool
Código PHP:
import org.apache.turbine.services.resources.TurbineResources;
import org.apache.turbine.util.Log;
import java.sql.*;
import java.util.Vector;
public class SQLServerJDBC
{
String driver = "";
String url = "";
String login = "";
String password = "";
int codError = 0;
String mensajeError = "";
Connection connection = null;
public SQLServerJDBC()
{
try
{
driver = TurbineResources.getString("database.conector.driver", "");
url = TurbineResources.getString("database.conector.url", "");
login = TurbineResources.getString("database.conector.username", "");
password = TurbineResources.getString("database.conector.password", "");
Class.forName(driver);
DriverManager.setLoginTimeout(30);
connection = DriverManager.getConnection(url, login, password);
connection.setAutoCommit(false);
}
catch(Exception e)
{
Log.error(e);
codError = 1;
mensajeError = e.toString();
}
}
public boolean doCommit()
{
clearError();
try
{
connection.commit();
}
catch(Exception e)
{
Log.error(e);
codError = 1;
mensajeError = e.toString();
return false;
}
return true;
}
public boolean doRollback()
{
clearError();
try
{
connection.rollback();
}
catch(Exception e)
{
Log.error(e);
codError = 1;
mensajeError = e.toString();
return false;
}
return true;
}
public Vector doSelect(String sql)
{
Vector data = new Vector();
clearError();
try
{
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next())
{
Vector rec = new Vector();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++)
{
rec.addElement(rs.getObject(i));
}
data.addElement(rec);
}
st.close();
}
catch(Exception e)
{
Log.error(e);
codError = 1;
mensajeError = e.toString();
return new Vector();
}
return data;
}
}
3ro instancio la conexion desde mis servlets
Código PHP:
import org.apache.velocity.context.Context;
import org.apache.turbine.util.Log;
import java.lang.Integer;
import java.lang.String;
import java.util.Date;
import java.util.Vector;
import java.util.Hashtable;
import java.util.Enumeration;
import java.text.SimpleDateFormat;
import com.package.modulo.util.SQLServerJDBC;
public class mi_clase
{
SQLServerJDBC jdbc = null;
public Vector Operacion(Hashtable tabla, Vector detalle)
{
try
{
jdbc = new SQLServerJDBC();
String sql = "";
Vector data_ = null;
sql = "select * from tabla";
sql = "select * from tabla";
data_ = jdbc.doSelect(sql);
if (data_ == null || data_.size() < 1)
{
jdbc.doRollback();
jdbc.doClose();
return false;
} }
catch(Exception e)
{
Log.error(e);
}
return data_;
}
}
saludos