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

Sentencia Modificar en Java

Estas en el tema de Sentencia Modificar en Java en el foro de Java en Foros del Web. Como hago para modificar mi base de datos con los datos de la aplicacion en java Intente con el siguiente codigo pero me sale error: ...
  #1 (permalink)  
Antiguo 28/09/2010, 08:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 138
Antigüedad: 15 años, 2 meses
Puntos: 3
Sentencia Modificar en Java

Como hago para modificar mi base de datos con los datos de la aplicacion en java

Intente con el siguiente codigo pero me sale error:

void jButton3_actionPerformed(ActionEvent e) {


String ssnombre=String.valueOf(nombre.getText());
String ssedad=String.valueOf(edad.getText());
String ssdni=String.valueOf(dni.getText());
int nssuma=Integer.parseInt(suma.getText());

try{



Connection c;
Statement ps;
String str="jdbc:odbc:PEMPLEADO2";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
c=DriverManager.getConnection(str);
ps=c.createStatement();


ps.executeUpdate("Update EMPLEADO Set (nombre,edad,dni,pa)values(ssnombre,ssedad,ssdni,n ssuma) Where id =1");



ps.close();
c.close();



}catch(Exception es2){
es2.printStackTrace();
}


}


me sale el error:

"C:\Archivos de programa\JBuilderX\jdk1.4\bin\javaw" -classpath "C:\Documents and Settings\humberto\Escritorio\PROYECTO DE SISTEMAS DE INFORMACION\SinTitulo6\classes;C:\Archivos de programa\JBuilderX\jdk1.4\demo\jfc\Java2D\Java2Dem o.jar;C:\Archivos de programa\JBuilderX\jdk1.4\demo\plugin\jfc\Java2D\J ava2Demo.jar;C:\Archivos de programa\JBuilderX\jdk1.4\jre\javaws\javaws.jar;C: \Archivos de programa\JBuilderX\jdk1.4\jre\lib\charsets.jar;C:\ Archivos de programa\JBuilderX\jdk1.4\jre\lib\ext\dnsns.jar;C: \Archivos de programa\JBuilderX\jdk1.4\jre\lib\ext\ldapsec.jar; C:\Archivos de programa\JBuilderX\jdk1.4\jre\lib\ext\localedata.j ar;C:\Archivos de programa\JBuilderX\jdk1.4\jre\lib\ext\sunjce_provi der.jar;C:\Archivos de programa\JBuilderX\jdk1.4\jre\lib\im\indicim.jar;C :\Archivos de programa\JBuilderX\jdk1.4\jre\lib\im\thaiim.jar;C: \Archivos de programa\JBuilderX\jdk1.4\jre\lib\jce.jar;C:\Archi vos de programa\JBuilderX\jdk1.4\jre\lib\jsse.jar;C:\Arch ivos de programa\JBuilderX\jdk1.4\jre\lib\plugin.jar;C:\Ar chivos de programa\JBuilderX\jdk1.4\jre\lib\rt.jar;C:\Archiv os de programa\JBuilderX\jdk1.4\jre\lib\sunrsasign.jar;C :\Archivos de programa\JBuilderX\jdk1.4\lib\dt.jar;C:\Archivos de programa\JBuilderX\jdk1.4\lib\htmlconverter.jar;C: \Archivos de programa\JBuilderX\jdk1.4\lib\tools.jar" sintitulo6.Application1
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Línea 1: sintaxis incorrecta cerca de '('.

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc .java:6958)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java :7115)

at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java :3111)

at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcSt atement.java:338)

at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Jdbc OdbcStatement.java:288)

at sintitulo6.Marco1.jButton3_actionPerformed(Marco1. java:337)

at sintitulo6.Marco1_jButton3_actionAdapter.actionPer formed(Marco1.java:442)

at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.act ionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.jav a:5100)

at java.awt.Component.processEvent(Component.java:489 7)

at java.awt.Container.processEvent(Container.java:156 9)

at java.awt.Component.dispatchEventImpl(Component.jav a:3615)

at java.awt.Container.dispatchEventImpl(Container.jav a:1627)

at java.awt.Component.dispatchEvent(Component.java:34 77)

at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3128)

at java.awt.Container.dispatchEventImpl(Container.jav a:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606 )

at java.awt.Component.dispatchEvent(Component.java:34 77)

at java.awt.EventQueue.dispatchEvent(EventQueue.java: 456)

at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:100)

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Línea 1: sintaxis incorrecta cerca de '('.

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc .java:6958)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java :7115)

at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java :3111)

at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcSt atement.java:338)

at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Jdbc OdbcStatement.java:288)

at sintitulo6.Marco1.jButton3_actionPerformed(Marco1. java:337)

at sintitulo6.Marco1_jButton3_actionAdapter.actionPer formed(Marco1.java:442)

at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.act ionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.jav a:5100)

at java.awt.Component.processEvent(Component.java:489 7)

at java.awt.Container.processEvent(Container.java:156 9)

at java.awt.Component.dispatchEventImpl(Component.jav a:3615)

at java.awt.Container.dispatchEventImpl(Container.jav a:1627)

at java.awt.Component.dispatchEvent(Component.java:34 77)

at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3128)

at java.awt.Container.dispatchEventImpl(Container.jav a:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606 )

at java.awt.Component.dispatchEvent(Component.java:34 77)

at java.awt.EventQueue.dispatchEvent(EventQueue.java: 456)

at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:100)
  #2 (permalink)  
Antiguo 30/09/2010, 14:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 5
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Sentencia Modificar en Java

Hola Alber:

Si lees el error que te está dando, verás que no es un problema de Java, sino de SQL.

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Línea 1: sintaxis incorrecta cerca de '('.

El problema es que está mal construida la sql. Te indico como sería.

//Esta es la tuya
ps.executeUpdate("Update EMPLEADO Set (nombre,edad,dni,pa)values(ssnombre,ssedad,ssdni,n ssuma) Where id =1");

//Esta sería la buena
ps.executeUpdate("Update EMPLEADO Set nombre = '" + ssnombre + "', edad = '" + ssedad + "', dni = "' + ssdni + '", pa = " + nsuma + " + where id =1");

Varias cosas a tener en cuenta
1.- No puedes poner directamente las variables ssnombre, ssedad, ssdni, nsuma directamtente dentro de un string, puesto que java lo interpreta como texto normal en lugar de variables. Para ello debes de realizar concatenación de string usando el operador +
2.- Si hace la actualización de datos que son de tipo texto, en la consulta debes de poner comillas. Como podría ser un lío gordo, yo lo que hago es usar las comillas simples para los string de la consulta sql que quiero construir. Y las comillas dobles para el string de java que estoy construyendo.

Espero que te sirva.

Saludos.

Filemute
  #3 (permalink)  
Antiguo 27/01/2011, 13:03
 
Fecha de Ingreso: mayo-2010
Mensajes: 7
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Sentencia Modificar en Java

Hola, yo tengo esto:

String q = "UPDATE usuarios SET " + "nombre = '" + us + "', pass = '" + pas + "' WHERE nombre = '" + uso + "'";
int i = stmt.executeUpdate(q);

Y no me da ninguna excepcion, peta la aplicacion y me toca parar el run y volver a ejecutar...

Que puede ser?? la conexion a la base de datos esta bien porque los select si que los puedo hacer bien, i ademas otro update para crear el usuario también lo hace bien.... :(

Graciasss

Etiquetas: modificar, sentencia
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:16.