Foros del Web » Programación para mayores de 30 ;) » Java »

Rescatar datos en Java con MySQL

Estas en el tema de Rescatar datos en Java con MySQL en el foro de Java en Foros del Web. A ver si me podeis echar una mano en esto, es un ejemplo sencillo pero no doy con ello. Gracias Ahora mismo estoy usando EasyPHP ...
  #1 (permalink)  
Antiguo 07/02/2009, 08:04
Avatar de manurodri189  
Fecha de Ingreso: octubre-2006
Ubicación: Toledo
Mensajes: 76
Antigüedad: 17 años, 6 meses
Puntos: 1
Rescatar datos en Java con MySQL

A ver si me podeis echar una mano en esto, es un ejemplo sencillo pero no doy con ello. Gracias

Ahora mismo estoy usando EasyPHP y Netbeans.

Me he puesto manos a la obra, para ver como funciona, con un ejemplo muy sencillito. Un boton, y un jText, cuando pinche el boton rescato los datos de la BBDD. La BBDD tiene una tabla, Persona, con un campo Nombre, con 2 filas, pepe y juan.

Bien es un ejemplo sencillito, para ir tocando poco a poco y ver como funciona.

El caso es que no se rescatar los datos de la BBDD y tratarlo como variables de java.

He hecho esta estructura de paquetes:



La clase Agente.Java, es la que hace la conexion y creo que está bien, la pongo aqui:

Código:
package Persistencia;

import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;

public class Agente {

    protected static Agente mInstancia = null;
    protected Connection mBD;
    protected String driver = "com.mysql.jdbc.Driver";
    protected String usuario = "root";
    protected String contraseña = "";
    protected String url="jdbc:mysql://localhost/Persona/";

    protected Agente() throws SQLException, ClassNotFoundException {
            Class.forName(driver);
            mBD = (Connection) DriverManager.getConnection(url, usuario, contraseña);
    }

    public static Agente getAgente() throws SQLException, ClassNotFoundException {
            if (mInstancia == null)
                    mInstancia = new Agente();
            return mInstancia;
    }

    public Connection getBD() throws SQLException {
            if(mBD.isClosed())
                    mBD = (Connection) DriverManager.getConnection(url, usuario, contraseña);
            return mBD;
    }

}
En la clase persona es la que se supone que debe rescatar los datos de la BBDD, no? Pues lo he hecho asi:

Código:
package Dominio;

import Persistencia.Agente;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Persona {
    String nombre;


    public Persona (){
        nombre="";
    }

    public Persona (String nombre){
        this.nombre=nombre;
    }

    public void setNombre(String n){
        nombre=n;
    }

    public String getNombre(){
        return nombre;
    }

   public void recuperarInformacion() throws ClassNotFoundException, SQLException {
        String SQL="SELECT Nombre FROM persona";
        String nomAux="";

        Connection bd=null;
        PreparedStatement p=null;

        bd=Agente.getAgente().getBD();
        p=bd.prepareStatement(SQL);
        p.setString(1,getNombre());
        ResultSet r=p.executeQuery();

        while(r.next()){
            nomAux=r.getString(1);
            }

        bd.close();

        setNombre(""+nomAux);
    }
}
El método recuperar información es el que no me cuadra, pero creo que está bien de todos modos.

Y el metodo del botón para que me lo muestre en el jText es el siguiente, que este creo que es el que realmente tengo problemas:

Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       bbddFunciona=true;
      
        try {
            per.recuperarInformacion();
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            jTextPane1.setText("Se ha producido un error al conectar con la base de datos.");
            bbddFunciona=false;
            Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
A ver si me echais una mano, porque debe de ser una chorrada pero no doy con ello. Muchas gracias.

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.