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

Guardar datos de un jframe en mysql

Estas en el tema de Guardar datos de un jframe en mysql en el foro de Java en Foros del Web. Hola gente. Necesito su ayuda, el problema que tengo es este, tengo un jframe a modo de formulario, donde guardo nombre , edad , apellido ...
  #1 (permalink)  
Antiguo 22/01/2015, 14:42
 
Fecha de Ingreso: septiembre-2014
Mensajes: 13
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Guardar datos de un jframe en mysql

Hola gente.

Necesito su ayuda, el problema que tengo es este, tengo un jframe a modo de formulario, donde guardo nombre , edad , apellido y pais. Al apretar guardar veo los datos en un jlist en el mismo jframe, pero no en la base de datos, si agrego manualmente los datos en la base si los veo en el jlist, o sea el error esta en el codigo del formulario donde intento guardar. Uso mysql y netbeans 8.0
Les pido su ayuda, soy nuevo en esto y me cuesta, les comento que eliminar anda perfecto, elimino y lo elimina de la base, por lo que creo que la conexion a la bd anda perfecto.
saludos y gracias.


aca esta el codigo de la clase conexion.

package fase09;

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


public class Conexion {

public static Connection obtenerConexion() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {

//Establece el nombre del driver a utilizar
String driver="com.mysql.jdbc.Driver";

//Establece el nombre de la conexion a utilizar
String conexion="jdbc:mysql://localhost/abm";

//Establece el nombre del usuario
String usuario="root";
//Establece el nombre del password
String clave="1234"; // yo lo agregue para PROBAR EN CASA CON MYSQL

////Establece el driver para la conexion
Class.forName(driver).newInstance();

//Retorna la conexion
return DriverManager.getConnection(conexion, usuario, clave);
}

}

y abajo esta el codigo de guardar, lo tengo en otra clase ( guardar es un boton del jframe)

private void btnGuardarActionPerformed(java.awt.event.ActionEve nt evt) {
///////////////////////////////
// Variables
boolean esNuevo = true;
// Valida el formulario
boolean validacionOk = validarFormulario();

// Si el formulario es valido...modifica o carga uno nuevo
if(validacionOk){

Cliente c = new Cliente();

// Si hay un item seleccionado lo obtiene
if( listClientes.getSelectedIndex() != -1 ){ // es si seleccionaste un item de la lista
c = (Cliente)listClientes.getSelectedValue();
esNuevo = false;
}

// Agrega el cliente a la lista de clientes
c.setNombre(txtNombre.getText());
c.setApellido(txtApellido.getText());
c.setEdad(Integer.parseInt(txtEdad.getText()));
c.setPais((String)cmbPais.getSelectedItem());
System.out.println(c.getPais());

// Si no es nuevo lo actualiza
if(esNuevo==false){
modeloClientes.getElementAt( listClientes.getSelectedIndex()); //getElementAt le paso un indice me devuelve un objeto
JOptionPane.showMessageDialog(this,
"El cliente ha sido modificado!",
"Guardar",
JOptionPane.INFORMATION_MESSAGE
);
}

// Si es un cliente nuevo lo agrega
if(esNuevo){
// listClientes.setSelectedIndex(-1);
modeloClientes.addElement(c);
JOptionPane.showMessageDialog(this,
"El cliente ha sido guardado!",
"Guardar",
JOptionPane.INFORMATION_MESSAGE
);
}

// Limpia el formulario
limpiarFormulario();

// Desactiva boton 'guardar'
btnGuardar.setEnabled(false);

// Desactiva boton 'eliminar'
btnEliminar.setEnabled(false);

// Activa boton 'nuevo'
btnNuevo.setEnabled(true);
}
  #2 (permalink)  
Antiguo 22/01/2015, 15:42
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: Guardar datos de un jframe en mysql

¿Y en qué momento llamas al método que lo inserta el registro en la BD?
Código Java:
Ver original
  1. // Si es un cliente nuevo lo agrega
  2. if(esNuevo){
  3.     // listClientes.setSelectedIndex(-1);
  4.     modeloClientes.addElement(c);
  5.     JOptionPane.showMessageDialog(this, "El cliente ha sido guardado!", "Guardar", JOptionPane.INFORMATION_MESSAGE);
  6. }
¿Dónde está el la línea de código que llama al método que contiene el insert?
  #3 (permalink)  
Antiguo 22/01/2015, 16:01
 
Fecha de Ingreso: septiembre-2014
Mensajes: 13
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Respuesta: Guardar datos de un jframe en mysql

Cita:
Iniciado por farfamorA Ver Mensaje
¿Y en qué momento llamas al método que lo inserta el registro en la BD?
Código Java:
Ver original
  1. // Si es un cliente nuevo lo agrega
  2. if(esNuevo){
  3.     // listClientes.setSelectedIndex(-1);
  4.     modeloClientes.addElement(c);
  5.     JOptionPane.showMessageDialog(this, "El cliente ha sido guardado!", "Guardar", JOptionPane.INFORMATION_MESSAGE);
  6. }
¿Dónde está el la línea de código que llama al método que contiene el insert?




GRACIAS, ME DAS UNA MANO, ESTE ES MI METODO INERTAR, COMO LO LLAMO EN LA CLASE.

EL METODO ES ESTE
public void insertar (Connection c) throws Exception {

// Arma la sentencia de inserción
String sql ="INSERT INTO clientes(idcliente,nombre,apellido,edad,pais) "
+ "VALUES("+this.getIdcliente()+
",'"+this.getNombre()+
"','"+this.getApellido()+
"',"+this.getEdad()+
",'"+this.getPais()+"')";

Statement insercion = c.createStatement();

//Ejecuta la consulta
insercion.execute(sql);

//Cierra la conexion
insercion.close();


//Informa que la insercion se realiao correctamente
System.out.println("La insercion se realizo con exito!...");

}

y la clase conexion es asi el codigo


public class Conexion {

public static Connection obtenerConexion() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {

//Establece el nombre del driver a utilizar
String driver="com.mysql.jdbc.Driver";

//Establece el nombre de la conexion a utilizar
String conexion="jdbc:mysql://localhost/abm";

//Establece el nombre del usuario
String usuario="root";
//Establece el nombre del password
String clave="1234"; // yo lo agregue para PROBAR EN CASA CON MYSQL

////Establece el driver para la conexion
Class.forName(driver).newInstance();

//Retorna la conexion
return DriverManager.getConnection(conexion, usuario, clave);
}

}

Última edición por cristiandr650; 22/01/2015 a las 16:14

Etiquetas: clase, jframe, mysql, netbeans, string
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 02:09.