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

Por que no inserta los datos a la bd???

Estas en el tema de Por que no inserta los datos a la bd??? en el foro de Java en Foros del Web. hola amigos... aqui mi codigo... todo esta en un solo documento... lo que no entiendo es por que no iserta los datos en la bd... ...
  #1 (permalink)  
Antiguo 17/12/2008, 17:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 21
Antigüedad: 16 años, 9 meses
Puntos: 0
Por que no inserta los datos a la bd???

hola amigos... aqui mi codigo...

todo esta en un solo documento... lo que no entiendo es por que no iserta los datos en la bd... hay cosas que estan en el codigo que realment no use que se me ocurrieron pero luego note que habia una forma mejor de hacerlo... solo quiero que me ayuden, solo quiero saber por que razon no inserta los datos en la bd en MYSQL... todo se compila bien.... la conexion es exitosa.... solo que cuando intento insertar los datos SQLException me arroja el msj por consola


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

class conexion {

String base = "cauchos";
String user = "root";
String pass = "";
String url = "jdbc:mysql://localhost/"+base;
boolean bool = false;
String exito = "la conexion ha sido exitosa";
String fallo = "la conexion ha fallado";

Connection conn = null;

public conexion() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url,user,pass);
}
catch(SQLException e) {
bool = true;
}
catch(ClassNotFoundException e) {
System.out.println("chao");
System.exit(0);
}
}

public Connection conectame() {
return conn;
}
public void desconectar() {
conn = null;
}

}

class consultas extends conexion {
conexion conec;
public consultas() {
conec = new conexion();
}
public void insertar(String t, String t1, String t2) {

try {
Statement stm = conec.conectame().createStatement();
//PreparedStatement p = conec.conectame().prepareStatement("INSERT INTO cauchos VALUES(t, t1, t2)");
ResultSet res = stm.executeQuery("INSERT INTO cauchos VALUES(t, t1, t2)");
res.close();
} catch(SQLException e) {
System.out.println(e.getMessage());
}
}
}

public class vista extends JFrame implements ActionListener {
String val;
String val1;
String val2;
JTextField texto;
JTextField texto1;
JTextField texto2;
JButton boton;
JLabel l;
consultas con;
public vista() {

con = new consultas();
JFrame f = new JFrame();
f.setSize(800,600);
f.setLayout(new FlowLayout(FlowLayout.RIGHT));
texto = new JTextField(20);
texto1 = new JTextField(20);
texto2 = new JTextField(20);
boton = new JButton("insertar");
l = new JLabel();
if(con.conectame() != null) {
l.setText(con.exito);
}
f.add(l);
f.add(texto);
f.add(texto1);
f.add(texto2);
f.add(boton);
f.show();
f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);}});
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
boton.addActionListener(this);

}
public void actionPerformed(ActionEvent e){
if(e.getSource() == boton) {
val = texto.getText();
val1 = texto1.getText();
val2 = texto2.getText();
con.insertar(val, val1, val2);
}
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
vista v = new vista();
}

}
  #2 (permalink)  
Antiguo 17/12/2008, 18:23
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años, 1 mes
Puntos: 37
Respuesta: Por que no inserta los datos a la bd???

Esta insertando mal las variables:

ResultSet res = stm.executeQuery("INSERT INTO cauchos VALUES(t, t1, t2)");

DEBE SER ALGO COMO:
ResultSet res = stm.executeQuery("INSERT INTO cauchos VALUES(" + valorDeT+ ", "+ valordeT1 + ", " + valorDeT2 + ")");

(dependiendo de si son datos numericos o caracter
  #3 (permalink)  
Antiguo 19/12/2008, 10:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: Por que no inserta los datos a la bd???

Hola AntonyDreamer aparte de lo que wwwmaster ha escrito es cierto yo te recomiendo por experiencia (ya que tuve algunos problemas por esto) que en las sentencias UPDATE e INSERT que no regresar valor alguno no utilices el metodo executeQuery('query') sino simplemente execute('query') sin necesidad de asignar el valor, es decir:

tu lo tienes asi:

ResultSet rs = smt.executeQuery('INSERT...');

lo que yo te recomiendo:

smt.execute('INSERT...');

espero te sea de ayuda. Saludos
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:01.