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:
En la clase persona es la que se supone que debe rescatar los datos de la BBDD, no? Pues lo he hecho asi: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; } }
Código:
El método recuperar información es el que no me cuadra, pero creo que está bien de todos modos.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); } }
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:
A ver si me echais una mano, porque debe de ser una chorrada pero no doy con ello. Muchas gracias.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); } }
Salu2