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

Añadir registro sql desde java

Estas en el tema de Añadir registro sql desde java en el foro de Java en Foros del Web. Buenas a todos, estoy aprendiendo a trabajar con bases de datos, pero me he quedado estancado a la hora de añadir registros.. ya tengo creada ...
  #1 (permalink)  
Antiguo 05/12/2011, 14:19
 
Fecha de Ingreso: diciembre-2011
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Añadir registro sql desde java

Buenas a todos, estoy aprendiendo a trabajar con bases de datos, pero me he quedado estancado a la hora de añadir registros.. ya tengo creada una tabla con 4 columnas (ID, Usuario, Password, Clase). ya probé las consultas y me muestra los datos correctamente pero no me deja añadir nada..
aquí el código


Código:
import java.io.*;
import java.sql.*;
public class inter {
    static Connection db;
	public static void main(java.lang.String[] args) throws IOException {
            Statement stmt;
            boolean error_loading_driver=false;
            try {			
		Class.forName("com.mysql.jdbc.Driver");
            }catch (ClassNotFoundException cnfe){
                  error_loading_driver=true;
            }		
            if (!error_loading_driver) {	
		boolean connected=false;
		try {
 			System.out.println ("Conectando a la base de datos!");
			db = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", ""); 				
			connected=true;
                 } catch (SQLException se) {	
                        System.out.println ("No se ha podido conectar a la base.");
                 }
			if (connected) {
				System.out.println ("Ya se ha conectado a la base de datos");
				try {
                                  stmt = db.createStatement();
                                  int a= 4;
                                        String b = "Cesar";
                                        String c = "adsa";
                                        String d = "Asistente";
                                        
                                        stmt.executeUpdate("INSERT INTO contacto (ID, Usuario, Password, Clase) VALUES ("+a+","+b+","+c+","+d+")");
                                        db.close();
					System.out.println ("Base de datos cerrada");
                                } catch (SQLException se) {
						System.out.println ("No se ha podido cerrar la base.");
				}
			}
                        } else  { 
                            System.out.println ("No se ha podido encontrar el driver JDBC para MySql.");
                        }
     }

}


En consola me muestra lo siguiente al ejecutar:

Cita:
Conectando a la base de datos!
Ya se ha conectado a la base de datos
No se ha podido cerrar la base.
El error debe estar por el stmt.executeUpdate pero no encuentro nada malo en el código.. por favor si alguien puede ayudarme
  #2 (permalink)  
Antiguo 06/12/2011, 04:41
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 12 años, 10 meses
Puntos: 19
Respuesta: Añadir registro sql desde java

tenes que agregar comillas simples en cada variable dentro del VALUE:

stmt.executeUpdate("INSERT INTO contacto (ID, Usuario, Password, Clase) VALUES ('"+a+"','"+b+"','"+c+"','"+d+"')");
  #3 (permalink)  
Antiguo 06/12/2011, 18:34
 
Fecha de Ingreso: diciembre-2011
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Añadir registro sql desde java

Cita:
Iniciado por afrika026 Ver Mensaje
tenes que agregar comillas simples en cada variable dentro del VALUE:

stmt.executeUpdate("INSERT INTO contacto (ID, Usuario, Password, Clase) VALUES ('"+a+"','"+b+"','"+c+"','"+d+"')");

Fue un descuido, ya había probado con las comillas simples.. las había borrado para probar si servia sin comillas y se me olvido volverlas a poner.. ya las he colocado de nuevo pero el problema persiste.. es el mismo código anterior pero ya agregue las comillas simples

Código:
import java.io.*;
import java.sql.*;
public class inter {
    static Connection db;
	public static void main(java.lang.String[] args) throws IOException {
            Statement stmt;
            boolean error_loading_driver=false;
            try {			
		Class.forName("com.mysql.jdbc.Driver");
            }catch (ClassNotFoundException cnfe){
                  error_loading_driver=true;
            }		
            if (!error_loading_driver) {	
		boolean connected=false;
		try {
 			System.out.println ("Conectando a la base de datos!");
			db = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", ""); 				
			connected=true;
                 } catch (SQLException se) {	
                        System.out.println ("No se ha podido conectar a la base.");
                 }
			if (connected) {
				System.out.println ("Ya se ha conectado a la base de datos");
				try {
                                  stmt = db.createStatement();
                                  int a= 4;
                                        String b = "Cesar";
                                        String c = "adsa";
                                        String d = "Asistente";
                                        
                                        stmt.executeUpdate("INSERT INTO contacto (ID, Usuario, Password, Clase) VALUES ('"+a+"','"+b+"','"+c+"','"+d+"'+b+"','"+c+"','"+d+"')");
                                        db.close();
					System.out.println  ("Base de datos cerrada");
                                } catch (SQLException se) {
						System.out.println ("No se ha podido cerrar la base.");
				}
			}
                        } else  { 
                            System.out.println ("No se ha podido encontrar el driver JDBC para MySql.");
                        }
     }

}
En consola me muestra lo siguiente al ejecutar:
Cita:
Conectando a la base de datos!
Ya se ha conectado a la base de datos
No se ha podido cerrar la base.
Si alguien tiene alguna otra idea o encuentra otro error, por favor dígalo.
  #4 (permalink)  
Antiguo 06/12/2011, 19:04
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Añadir registro sql desde java

La razón de utilizar la captura de excepciones son dos, modificar el flujo de trabajo e identificar la causa del error.

Teniendo en cuenta que no haces ninguna de las dos, tu captura de excepción y nada es lo mismo. Empieza por hacer que te muestre el texto de las excepciones.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: jar, mysql, registro, sql, 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 09:49.