conexion java postgres mvc tutorial aquitectura model,view,controller

Technology

conexion java postgres mvc tutorial aquitectura model,view,controller

para la arquitectura mvc o modelo vista controlador podemos tener la conexion de muchas maneras ,por que algunos realizan la conexion desde el controlador otros desde el modelo sin embargo se los dejare dinamico cosa que si quieren moverlo de controlador a modelo lo muevan sin ningun problema y al contrario tampoco, lo primero que debemos hacer es crear las 3 carpetas yo las creo en ingles perdon por la variacion pero programo asi :P
en controller creamos una clase que se va a encargar de la conexion a la base de datos y tendra 2 metodos principales con return la clase la llamaremos Conexion y pondremos el siguiente codigo:




package controller;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author andres2288
 */
public class Conexion {

    static String usuario = "postgres";
    static String password = "admin";
    static String base = "test";
    static String cadenaConexion = "jdbc:postgresql://127.0.0.1/" + base + "?" + "user=" + usuario + "&password=" + password;
    Connection conexion = null;
    private Statement sentencia = null;

    public Connection Conexion() throws ClassNotFoundException, SQLException {

        Class.forName("org.postgresql.Driver");
        conexion = DriverManager.getConnection(cadenaConexion);
        return conexion;

    }

    public Statement sta() throws SQLException {
        sentencia = conexion.createStatement();
        return sentencia;
    }

    public static void main(String args[]) throws ClassNotFoundException, SQLException {
        Conexion c = new Conexion();
        c.consulta("1");

    }

    public void consulta(String cod) {
        Statement sentencia = null;
        ResultSet resultado = null;
        try {
            Class.forName("org.postgresql.Driver");
            sentencia = conexion.createStatement();
            String consultaSQL = "SELECT * FROM \"Estudiante\" where codigo='" + cod + "'";
            resultado = sentencia.executeQuery(consultaSQL);
            while (resultado.next()) {
                Long id = resultado.getLong("codigo");
                String nombres = resultado.getString("nombre");
                String apellidos = resultado.getString("apellido");
                System.out.println(id + "\n" + nombres + "\n" + apellidos);
            }
        } catch (Exception e) {
            e.printStackTrace();
            conexion = null;
        } finally {
            if (resultado != null) {
                try {
                    resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                    sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                    conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

    }

    /**
     * @return the sentencia
     */
    public Statement getSentencia() {
        return sentencia;
    }

}

como vemos 2 metodos principales Conexion() de tipo Connection sta() de tipo Statement de esta forma podremos asegurar varias consultas con la base de datos al momento de nesesitarlas y asegurarnos que no se cerrara la conexion.

 Luego crearemos una clase dentro del model llamada
 Gestiones la cual va a tener el siguiente codigo:




package model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 *
 * @author andres2288
 */
public class Gestiones {
    
    
    public String primeraGestion( Connection conexion, Statement sentencia){
         String datos="";
        ResultSet resultado = null;
        try {
            Class.forName("org.postgresql.Driver");
     
            String consultaSQL = "SELECT * FROM USUARIOS";
            resultado = sentencia.executeQuery(consultaSQL);
            while (resultado.next()) {
                Long id = resultado.getLong("id");
                String nombres = resultado.getString("nombres");
                String apellidos = resultado.getString("apellidos");
                System.out.println(id + "\n" + nombres + "\n" + apellidos);
                datos+="id="+id+"nombre="+nombres+"apellidos="+apellidos+"\n";
            }
        } catch (Exception e) {
            e.printStackTrace();
            conexion = null;
        } finally {
            if (resultado != null) {
                try {
                    resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                   // sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                   // conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return datos;
    }
}


aqui se va a realizar todas las consultas que realizemos va llegar desde el iframe, finalmente dentro del pakete view crearemos un Iframe llamado vista el cual va a hacer la interfaz del usuario que consulta una ves creada añadimos los import siguientes:





import controller.Conexion;
import model.Gestiones;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
ahora debajo de la clase osea por ejemplo debajo de esta linea public class vista extends javax.swing.JFrame { agregaremos las siguientes variables:



 Conexion conn = null;
    Connection conexion = null;
    Gestiones e = null;
    Statement sentencia = null;


con esto nos aseguramos que siempre habrá una conexión estable .
ahora dentro del construtor que esta de la siguiente forma public vista() throws ClassNotFoundException, SQLException { dentro de ese metodo pondremos lo siguiente :


     conn = new Conexion();
        conexion = conn.Conexion();
        e = new Gestiones();
        sentencia = conn.sta();
        initComponents();

obviamente initComponents(); ya esta en el constructor por ultimo creamos un JTexarea llamandolo desde la paleta esta area le pondremos a1, tambien creamos un boton al cual llame mostrar la interfaz mas o menos debera parecer de la siguiente manera:


damos doble click en el boton para llegar al evento que produce esto cuando presionamos el boton y dentro de ese metodo pondremos lo siguiente:




   a1.setText( e.primeraGestion(conexion, sentencia));

aqui hacemos la consulta en Gestiones pasando por parametros la conexion y la sentencia y alli nos devuelve el resultado en el area de texto facil :) bueno pero falta lo mas importante la base de datos y el .jar llamado postgresql-8.3-603.jdbc4.jar lo pueden descargar dando click en el nombre y lo importan como .jar desde la biblioteca, la base de datos  yo la llame test para eso crean una base de datos en postgres y la llaman de esa manera luego descargan la base de datos aqui DESCARGAR click derecho en la base de datos y le dan restore y tendra que salirte un mensaje diciendo done=1

creo que eso es todo si te gusta comparten esta entrada o dejen sus dudas :)

Post a Comment

0 Comments