La modularización es un elemento clave en la programación orientada a objetos. Modularizar un proyecto consiste en ordenar los objetos(clases, atributos, métodos…) de forma que pueda ser más fácil de usar y entender para el resto de grupo de trabajo. Aquí juega un papel muy importante las clases envoltorio (Wrapper), las cuales engloban toda la funcionalidad de esa clase, por ejemplo, la clase Float, Integer, etc.
En los ejercicios de entradas anteriores, se usaban muchas funciones que manipulan la base de datos. Lo más útil sería hacer una clase que contenga todos las funciones que hacen uso de la base de datos. Este es el código que crea la clase MySQL:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; /** * * @author Tarde */ public class MySQL { //ATRIBUTOS private Connection conn=null; private Statement stm=null; private ResultSet rst; private String bbdd=""; private String ruta=""; private String usuario=""; private String password=""; //CONSTRUCTOR public MySQL(String bbdd,String ruta,String usuario,String password){ this.bbdd=bbdd; this.ruta=ruta; this.usuario=usuario; this.password=password; } public ResultSet getResultSet(){ return this.rst; } public void inicializarBD(){ try { //crear el driver Class.forName("com.mysql.jdbc.Driver").newInstance(); //obtener el manejador // localhost, que en este caso es "prueba", //el usuario mysql es admin la password es adminadmin conn=DriverManager.getConnection("jdbc:mysql:"+ruta+"/"+bbdd,usuario,password); //obtener el statement stm= conn.createStatement(); }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }catch(Exception e){ System.out.println(e.getMessage()); } } public void cerrarBD(){ try { stm.close(); if (conn!=null){ conn.close(); } }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }catch(Exception e){ System.out.println(e.getMessage()); } } public void consultar(String consulta){ if(!consulta.equals("")){ try{ rst = stm.executeQuery(consulta); }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }catch(Exception e){ System.out.println(e.getMessage()); } } } public int insertar(String consulta){ int s=-1; try{ if(!(consulta.equals(""))){ s = stm.executeUpdate(consulta); } }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }catch(Exception e){ System.out.println(e.getMessage()); }finally{ return s; //Si es -1 es error del método insertar } } public int actualizar(String consulta){ int s=-1; try{ if(!(consulta.equals(""))){ s = stm.executeUpdate(consulta); } }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); s=-1; }catch(Exception e){ System.out.println(e.getMessage()); s=-1; }finally{ return s; //Si es -1 es error del método Actualizar } } public int borrar(String consulta){ int s=-1; try{ if(!(consulta.equals(""))){ s = stm.executeUpdate(consulta); } }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }catch(Exception e){ System.out.println(e.getMessage()); }finally{ return s; } } public int contar(String consulta){ int s=-1; try{ if(!(consulta.equals(""))){ rst = stm.executeQuery(consulta); if(rst.next()){ s=rst.getInt(1); } } }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }catch(Exception e){ System.out.println(e.getMessage()); }finally{ return s; } } }
Una vez hecho esto, ya se puede instanciar esta clase en el proyecto, para hacer diferentes tareas. Por ejemplo, para hacer el login, sería:
public int login(){ int existe=0; try{ MySQL mysql=new MySQL("flickr","//localhost","root", "forman"); mysql.inicializarBD(); //consulta mysql.consultar("SELECT idusuarios,rol FROM usuarios WHERE alias='"+alias+"' AND password='"+password+"' AND activado=1;"); //ejecutar la consulta ResultSet rst = mysql.getResultSet(); if(rst.next()){ //Existe existe=1; id=rst.getInt("idusuarios"); }else{ //No existe id=-1; } mysql.cerrarBD(); }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }finally{ return id; } }
No hay comentarios:
Publicar un comentario