Java + NetBeans + Mysql. Problema con Insert.

Iniciado por Lain0x, 7 Diciembre 2011, 18:43 PM

0 Miembros y 1 Visitante están viendo este tema.

Lain0x

Hola, he creado una tabla de nombre "alumno", con 5 columnas: id_alumno, Nombre, Edad, NotasFinales, Sexo.

Lo que trato de hacer es insertarle datos desde Netbeans.

El código usado es:

String sSQL = "insert into alumno values(?,?,?,?)";
PreparedStatement pst = null;
        try {
            pst = (PreparedStatement) c.prepareStatement(sSQL);
            pst.setString(1,s1);
            pst.setString(2,s2);
            pst.setString(3,s3);
            pst.setString(4,s4);
           
           
            pst.executeUpdate(sSQL);
   
         


El id no lo ingreso, porque se supone que no hay necesidad de hacerlo. Pero me tira este error:

MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?)' at line 1


Pablo Videla

Cita de: Lain0x en  7 Diciembre 2011, 18:43 PM
Hola, he creado una tabla de nombre "alumno", con 5 columnas: id_alumno, Nombre, Edad, NotasFinales, Sexo.

Lo que trato de hacer es insertarle datos desde Netbeans.

El código usado es:

String sSQL = "insert into alumno values(?,?,?,?)";
PreparedStatement pst = null;
        try {
            pst = (PreparedStatement) c.prepareStatement(sSQL);
            pst.setString(1,s1);
            pst.setString(2,s2);
            pst.setString(3,s3);
            pst.setString(4,s4);
           
           
            pst.executeUpdate(sSQL);
   
         


El id no lo ingreso, porque se supone que no hay necesidad de hacerlo. Pero me tira este error:

MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?)' at line 1



Si son varchar los tipos de datos van entre comillas

'?','?'... y asi sucesivamente

Littlehorse

#2
Cita de: BadDevil en  7 Diciembre 2011, 21:01 PM
Si son varchar los tipos de datos van entre comillas

'?','?'... y asi sucesivamente

Usando un PreparedStatement el problema de las ' ' no es relevante. Eso sucedería si estuviese armando la query directamente en el String.

Código (sql) [Seleccionar]
insert into alumno(Nombre ,Edad, NotasFinales, Sexo) values(?, ?, ?, ?);

Prueba con eso a ver que tal.

Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

klaine

Cita de: Littlehorse en  9 Diciembre 2011, 00:55 AM
Usando un PreparedStatement el problema de las ' ' no es relevante. Eso sucedería si estuviese armando la query directamente en el String.

Código (sql) [Seleccionar]
insert into alumno(Nombre ,Edad, NotasFinales, Sexo) values(?, ?, ?, ?);

Prueba con eso a ver que tal.

Saludos!


O.o y de donde sacaste los nombres de las columnas?  :xD

Pablo Videla

Cita de: Littlehorse en  9 Diciembre 2011, 00:55 AM
Usando un PreparedStatement el problema de las ' ' no es relevante. Eso sucedería si estuviese armando la query directamente en el String.

Código (sql) [Seleccionar]
insert into alumno(Nombre ,Edad, NotasFinales, Sexo) values(?, ?, ?, ?);

Prueba con eso a ver que tal.

Saludos!


Gracias por la aclaracion  :)

Littlehorse

Cita de: klaine en  9 Diciembre 2011, 08:59 AM
O.o y de donde sacaste los nombres de las columnas? :xD

Del primer post.

Cita de: Lain0x en  7 Diciembre 2011, 18:43 PM
Hola, he creado una tabla de nombre "alumno", con 5 columnas: id_alumno, Nombre, Edad, NotasFinales, Sexo.

Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

yonybrondy

No se si solucionastes tu problema pero espero ayudarte

String sSQL = "insert into alumno(Nombre, Edad, NotasFinales, Sexo) values(?,?,?,?)";
PreparedStatement pst = null;
        try {
            pst = (PreparedStatement) c.prepareStatement(sSQL);
            pst.setString(1,s1);
            pst.setString(2,s2);
            pst.setString(3,s3);
            pst.setString(4,s4);
           
           
            pst.executeUpdate();