07/04/2008, 07:57
|
| | | 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] |