Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/05/2010, 09:30
Denis127
 
Fecha de Ingreso: febrero-2010
Mensajes: 128
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Duda sobre código Java + Pool de Conexiones + Tomcat 6

No he podido leer todo tu post entero, pero te dejo el código de mi proyecto para conectarse a la BD. Ten en cuenta que tendrás que cambiarle los parámetros de las variables. Y por cierto, yo no he modificado nada en ningún archivo de configuración del proyecto web para establecer la conexión a la Base de datos, todo lo he hecho con código.

Código:
public class ConexionBD {

    private Connection con;
    private boolean conectado = false;
    private String driver = "com.mysql.jdbc.Driver";
    private String hostname = "jdbc:mysql://mi_máquina:puerto";
    private String user = "usuario";
    private String password = "contraeña";

public void conectar() {
        try {
            Class.forName(driver).newInstance();
            con = (Connection) DriverManager.getConnection(hostname, user, password);
            conectado = true;
        } catch (Exception e) {
            System.out.println("ERROR AL CONECTAR A LA BASE DE DATOS");
            e.printStackTrace();
        }
    }

public Connection getConexion() {
        return con;
    }

    public boolean estaConectado() {
        return conectado;
    }

public void desconectar() {
        try {
            if (con != null) {
                con.close();
            }
        } catch (Exception e) {
            System.out.println("ERROR AL DESCONECTARSE DE  LA BASE DE DATOS");
            e.printStackTrace();
        }
    }

 public String SQL_SELECT_CONTRASENA_USUARIO(String email) {
        String item = new String();
        try {
            String sql = "select * from usuario where email ='" + email + "'";
            PreparedStatement s = con.prepareStatement(sql);
            ResultSet r = s.executeQuery();
            if (r.getRow() == 1) {
                //CORRECTO
                item = r.getString("password");
            } else {
                //ERROR: USUARIO NO EXISTE
            }
            s.close();
            r.close();
        } catch (Exception ex) {
            System.out.println("ERROR: SQL_SELECT_CONTRASENA_USUARIO");
            //ex.printStackTrace();
        }
        return item;
    }

Espero te sirva de ayuda. En cuanto a lo de separar la lógica de negocio de la capa de datos, es como debe ser, imagina que tienes la base de datos en otro servidor... deberias hacer RMI, pero si lo tienes todo integrado en el Servlet sería imposible..

Un saludo