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

No puedo insertar datos en mi tabla

Estas en el tema de No puedo insertar datos en mi tabla en el foro de Java en Foros del Web. Tengo una clase JFrame (se llama Nuevo) que contiene código de conexión a base de datos, y la sentencia sql, no se mucho de Java ...
  #1 (permalink)  
Antiguo 29/08/2011, 19:25
 
Fecha de Ingreso: febrero-2011
Mensajes: 38
Antigüedad: 13 años, 2 meses
Puntos: 1
No puedo insertar datos en mi tabla

Tengo una clase JFrame (se llama Nuevo) que contiene código de conexión a base de datos, y la sentencia sql, no se mucho de Java por lo que pido disculpas por lo que estoy haciendo mal. El problema es que no me inserta, yo pensaba que era porque las variables están privadas así como las coloca NetBeans pero no entiendo porqué, si estan en la misma clase. Lo probé con otra clase java (de nombre Ventana) que tenia las variables publicas las cuales accedieron al método conectar de la clase Nuevo y si me funciono perfectamente. Aquí la clase:

package prueba;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class Nuevo extends javax.swing.JFrame {

public String usuario="root";
public String password="";
public String url="jdbc:mysql://localhost/inventario";
public String driver="com.mysql.jdbc.Driver";
public Connection conn=null;


public void conectar(){
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,usuario,passw ord);
Statement stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO cliente (cedula,nombre,direccion,telefono) VALUES("+
"'"+jTextField1.getText()+"',"+
"'"+jTextField2.getText()+"',"+
"'"+jTextField3.getText()+"',"+
"'"+jTextField4.getText()+"')");;


}
catch(Exception e){
System.out.println("Error en la conexion");
}
}


public Nuevo() {
initComponents();

}



@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);

jLabel1.setText("REGISTRO DE HABITANTES");
jLabel1.setName("jLabel1"); // NOI18N

jLabel2.setText("Cedula:");
jLabel2.setName("jLabel2"); // NOI18N

jLabel3.setText("Nombre:");
jLabel3.setName("jLabel3"); // NOI18N

jLabel4.setText("Direccion:");
jLabel4.setName("jLabel4"); // NOI18N

jLabel5.setText("Telefono:");
jLabel5.setName("jLabel5"); // NOI18N

jButton1.setText("Registrar");
jButton1.setName("jButton1"); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Salir");
jButton2.setName("jButton2"); // NOI18N
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jTextField1.setName("jTextField1"); // NOI18N

jTextField2.setName("jTextField2"); // NOI18N

jTextField3.setName("jTextField3"); // NOI18N

jTextField4.setName("jTextField4"); // NOI18N

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(83, 83, 83)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel4)
.addGap(18, 18, 18)
.addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 166, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(18, 18, 18)
.addComponent(jTextField4, javax.swing.GroupLayout.DEFAULT_SIZE, 167, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED, 22, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING, false)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
.addComponent(jTextField2))))
.addGap(81, 81, 81))
.addGroup(layout.createSequentialGroup()
.addGap(102, 102, 102)
.addComponent(jButton1)
.addGap(38, 38, 38)
.addComponent(jButton2)
.addContainerGap(125, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(53, 53, 53)
.addComponent(jLabel1)
.addGap(37, 37, 37)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED, 38, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap())
);

pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new Nuevo().conectar();
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}





public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new Nuevo().setVisible(true);
}
});
}

private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;

}

Gracias de antemano
  #2 (permalink)  
Antiguo 30/08/2011, 16:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 38
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: No puedo insertar datos en mi tabla

Si pueden ayudarme se los agradecería
  #3 (permalink)  
Antiguo 31/08/2011, 13:09
 
Fecha de Ingreso: agosto-2011
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: No puedo insertar datos en mi tabla

Hola Lizzi

Yo no soy experta en el tema, estoy iniciandome como vos. Tuve este mismo problema y lo solucioné asi. Espero te sirva.
Cree un método para establecer la conección y otro que me almacena los datos.
Lo diferente a lo que vos hiciste, es que lo valores en el insert no los tomo directamente de los jTextField, sino que se los transfiero a una variable(eso no esta en código abajo, porque lo hago en otra ventana, pero es simple declaras una variable y le asignas el jTextField.getText()) Mirá el código y cualquier duda escribime.

public void establecerConexion()
{
if (conexion != null)
return;
String connectString = "jdbc:postgresql://localhost:5432/postgres/public";
try
{
Class.forName("org.postgresql.Driver");
//Establecemos el Usuario y la contraseña
String user = "postgres";
String password = "26362379";
conexion = DriverManager.getConnection(connectString, user, password);
if (conexion !=null){
System.out.println("La conexión a la base de datos se estableció correctamente");
}
} catch (Exception e) {
System.out.println("Problema al consultar la bd -> " + e.getMessage());
}
}


public void cierraConexion()
{
try
{
conexion.close();
}catch(Exception e)
{
System.out.println("Problema para cerrar la Conexión a la base de datos ");
}
}


public void almacenarEstablecimiento(String nombreES, String direccionES, String ciudadES, String telES )throws ClassNotFoundException, SQLException{
nombreE = nombreES;
direccion = direccionES;
ciudad = ciudadES;
tel = telES;

establecerConexion();
int lineas_modi=0;
PreparedStatement consulta;
consulta = conexion.prepareStatement("INSERT INTO establecimiento(nombree, direccion, ciudad, tel) VALUES (?, ?, ?, ?)");
try
{
consulta.setString(1, nombreE);
consulta.setString(2, direccion);
consulta.setString(3, ciudad);
consulta.setString(4, tel);

lineas_modi = consulta.executeUpdate();
System.out.println("Los datos se guardaron correctamente");
}catch (Exception e)
{
System.out.println("Problema al consultar la bd -> " + e.getMessage());
}

cierraConexion();
}

Saludos...
  #4 (permalink)  
Antiguo 31/08/2011, 16:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 38
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: No puedo insertar datos en mi tabla

okey lo intentaré!
  #5 (permalink)  
Antiguo 01/09/2011, 07:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 38
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: No puedo insertar datos en mi tabla

lo hice asi:

public void conectar(){
String cedula=jTextField1.getText();
String nombre=jTextField2.getText();
String direccion=jTextField3.getText();
String telefono=jTextField4.getText();
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,usuario,passw ord);
PreparedStatement consulta;
consulta = conn.prepareStatement("INSERT INTO cliente (cedula,nombre,direccion,telefono) VALUES(?,?,?,?)");
consulta.setString(1,cedula);
consulta.setString(2,nombre);
consulta.setString(3,direccion);
consulta.setString(4,telefono);
consulta.executeUpdate();

}
catch(Exception e){
System.out.println("Error en la conexion");
}
}

pero tampoco me funciono :( o será que lo estoy haciendo como no es, me da Error en la conexion!
  #6 (permalink)  
Antiguo 01/09/2011, 08:32
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: No puedo insertar datos en mi tabla

trata de sacar los valores de las variables por la consola para saber si son los correctos, luego aparte del try/catch haz un finally para cerrar la conexión y el statement.
  #7 (permalink)  
Antiguo 03/09/2011, 18:10
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: No puedo insertar datos en mi tabla

Como consejo siempre has tus programas modulares por que hay tienes todo en el mismo cajon =S, por un lado has la conexion, por otro lee los datos y haz metodos específicos para ingrsar datos, borrarlos y eso, asi si surgen problemas se agiliza la reparacion del error.....

Sobre tu duda mejor te dejo este video que lo explica muy bien http://www.youtube.com/watch?v=PdwNE90T9s4

Etiquetas: netbeans
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 13:23.