Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/04/2008, 07:57
Avatar de djagu_26
djagu_26
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 17 años
Puntos: 6
Re: Objeto Connection global

te dejo un ejemplo de q como realizo yo la conexion tengo una clase q se encarga de conectarse y en otro metodo hago la consulta, usa un patron llamado Singleton que lo unico que te permite es tener una unica instancia de la conexion a la bd

Código:
import java.sql.Connection;
import java.sql.DriverManager;

/**
 *
 * @author Agustin Sivoplas  */
public class ConexionBD {
    private Connection con;
    private static ConexionBD instancia=null;
    /** Creates a new instance of ConexionBD */
    private ConexionBD() {
    }
    /**
     *Retorna la instancia de la clase.
     *
     *
     *@return ConexionBD
     */
    
    public static ConexionBD getInstancia(){
        if (instancia==null)
            instancia = new ConexionBD();
        return instancia;
    }
    /**
     *Permite conectarnos a la base de datos
     *
     *
     *@param usr String
     *
     *
     *@param pwd String
     *
     *
     *@param host String
     *
     *
     *@param base String
     *
     *
     *@return Boolean
     */
    public boolean conectar(String usr, String pwd, String host,String base){
        boolean valor=false;
        
        try{
          //  DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://" + host + "/" + base,usr, pwd);
            
            valor=true;
            
        } catch(Exception ex){
            ex.printStackTrace();
            valor=false;
        }
        return valor;
    }
    /**
     *Retorna la conexion.
     *
     *
     *@return Connection
     */
    public Connection getConexion(){
        return con;
    }
    
}
Aca te dejo un metodo para hacer una consulta

Código:
  /**
     *Se conecta con la base de datos para leer todos los
     *cargos de empleado.
     *
     *
     *@return ArrayList
     */
    public ArrayList leerTodos(){
        ArrayList lista= new ArrayList();
        CargoEmpleado c;
        try{
            Connection con=ConexionBD.getInstancia().getConexion();
            Statement st=con.createStatement();
            ResultSet rs=st.executeQuery("select * from cargosempleados where borrado='false' order by idCargo");
            
            while(rs.next()){
                
                String nombre=rs.getString("nombreCargo");
                double por=rs.getDouble("porcentaje");
                int id=rs.getInt("idCargo");
                
                c=new CargoEmpleado();
                c.setNombre(nombre);
                c.setPorcentaje(por);
                c.setId(id);
                
                lista.add(c);
            }
            rs.close();
        }
        
        catch (Exception ex){
            JOptionPane.showMessageDialog(null, ex.getMessage(), "Persistencia_CargoEmpleados",JOptionPane.WARNING_MESSAGE);
        }
        return lista;
    }
Asi para guardar

Código:
    /**
     *Se conecta con la base de datos para guardar un
     *Cargo de Empleado.
     *
     *
     *@param cargo CargoEmpleado
     *
     *
     *@return Boolean
     */
    public boolean guardarCargo(CargoEmpleado cargo){
        boolean resultado=false;
        try {
            Connection con=ConexionBD.getInstancia().getConexion();
            PreparedStatement pst=con.prepareStatement("update cargosempleados set nombreCargo=?, porcentaje=? where idCargo= " + cargo.getId());
            pst.setString(1,cargo.getNombre());
            pst.setDouble(2,cargo.getPorcentaje());
            
            long cont=pst.executeUpdate();
            if(cont==0){
                if(cargo.getId()==0){
                    pst=con.prepareStatement("insert into cargosempleados (nombreCargo,porcentaje) values (?,?)");
                    pst.setString(1,cargo.getNombre());
                    pst.setDouble(2,cargo.getPorcentaje());
                    pst.execute();
                }else{
                    pst=con.prepareStatement("insert into cargosempleados (nombreCargo,porcentaje,idCargo) values (?,?,?)");
                    pst.setString(1,cargo.getNombre());
                    pst.setDouble(2,cargo.getPorcentaje());
                    pst.setInt(3,cargo.getId());
                    pst.execute();
                }
            }
            resultado=true;
        } catch (SQLException ex) {
            ex.printStackTrace();
            resultado=false;
        }
        return resultado;
    }
saludos y espero haberte ayudado
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]