Actualizar datos con JDBC

15/Nov/2006 Java , , , , , , , , 10 Comentarios
Programación en Java

Uno de los procesos habituales, a la hora de realizar mantenimiento sobre una tabla, es el de la actualización. Así que hoy veremos cómo actualizar datos con JDBC mediante Java.

Mediante las actualizaciones podremos modificar los valores de datos que ya tengamos insertados en nuestras tablas. Para este menester, SQL nos proporciona la sentencia UPDATE. Veamos un poco más en detalle cómo construir este tipo de sentencias.

UPDATE tabla SET campo=valor WHERE campo=condicion

Se actualizarán todas las filas que cumplan la condición (WHERE campo=condicion). Y la actualización consistirá en asignar nuevos valores a ciertas columnas (SET campo=valor).

Si queremos actualizar más de una columna, utilizaremos una coma entre cada actualización de campo.

UPDATE tabla SET campo1=valor1, campo2=valor2 WHERE campo=condicion

Para poder ejecutar la sentencia de UPDATE mediante JDBC deberemos de seguir los siguientes pasos. El primero de ellos será el de conectar contra la base de datos sobre la que queremos lanzar la actualización. Para ello utilizamos las clases Connection y DriverManager.

String sDriver = "com.mysql.jdbc.Driver";
String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";

Class.forName(sDriver).newInstance();
con = DriverManager.getConnection(sURL,"root","password");

El proceso de conexión se divide en dos partes. La primera es donde se carga el driver de la base de datos. Es decir, el fichero que implementa el protocolo JDBC para la base de datos a la que estemos accediendo. En nuestro caso, al ser una base de datos MySQL, utilizamos «com.mysql.jdbc.Driver».

La segunda parte del proceso de conexión consiste en abrir una conexión contra la base de datos. Esto lo podemos conseguir mediante el DriverManager y el método .getConnection(). Dicho método requiere del usuario y password con el que nos estemos conectando a la base de datos. Así como la URL donde se encuentra la base de datos.

Una vez que tenemos la conexión preparamos la sentencia. Esto lo hacemos apoyándonos en la clase PreparedStatement. El PreparedStatement se utiliza cuando se va a realizar una sustitución de alguno de los valores de la condición, sino, se podría utilizar un Statement o directamente ejecutar la sentencia

PreparedStatement stmt;
stmt = con.prepareStatement("UPDATE tabla SET campo1=14 WHERE campoindice=?");
stmt.setString(1,"14");

Ya, solo nos quedará ejecutar la actualización. Para ello hay que ejecutar el método .executeUpdate() del PreparedStatement.

Dicho método devolverá el número de filas que se han actualizado. Será un valor entero de 0 al número de filas actualizadas.

int retorno = stmt.executeUpdate();

En el caso que en el proceso, desde la conexión a la ejecución de la sentencia, ocurriese un error, se produciría una excepción SQLException. Es por ello que no nos queda más remedio que capturar dicha excepción y ejecutar todo el código entre la sentencia try-catch.

De esta forma ya habremos conseguido el proceso de actualizar datos con JDBC mediante Java.

Vídeos sobre JDBC


10 comentarios en “Actualizar datos con JDBC”

Víctor Cuervo

victor

como hacer en caso que se quieran hacer modificaciones a mas de un campo y segun varias condiciones??

Víctor Cuervo

Víctor Cuervo

Buenas tocayo,

Puedes añadir los campos que quieras en el SET y en el WHERE las condiciones que necesites. Por ejemplo si quieres modificar dos campos y tener dos condiciones sería de la siguiente manera:

UPDATE tabla SET campo1=valor1, campo2=valor2 WHERE campo1=condicion AND campo2=condicion

Espero que esto te ayude.

Saludos.

Víctor Cuervo

Gerardo Girardini

Tenía el mismo problema, no podía agregar filas a mi base de datos mysql. por ahí encontré que luego del siguiente código

con = DriverManager.getConnection(sURL,»root»,»password»);

hay que poner

con.setAutoCommit(false);

Luego viene todo el código y después de excecuteUpdate se coloca

con.commit();

Víctor Cuervo

jony

update city set Name=’ «+Nombre+» ‘, District=’ «+Distrito+» ‘,CountryCode=’ «+CodigoPais+» ‘,Population=» +Poblacion+ «where city.ID=» + ID + «;»

utilizo exactamente esa sintaxis y no hace el update

Víctor Cuervo

Michel

hola buenos días me podrían ayudar con un update es que al momento de ingresar os datos solo me valida los campos y es lo único que hace y no me actualiza nada de la base de datos

Víctor Cuervo

Maria José

Hola,
Alguién me puede ayudar con este ejercicio:
El cliente Enrique Muriedas nos ha solicitado telefónicamente que le enviemos la factura de la reparación de referencia IdFactura=12. Los datos que teníamos registrados de esa factura son distintos. Reemplazar en la tabla FACTURAS los datos anteriores por los nuevos datos que nos ha suministrado el cliente. Estos datos son:
IdFactura: 12, FechaFactura: ‘2011-10-03’, CodCliente: ‘00005’, IdReparacion:3;
NOTA: No utilices la sentencia UPDATE.

Víctor Cuervo

Paola Carabajo

como actualizo la base de datos de una empresa utilizando una pocket mediante telefonia o mediante el internet

Víctor Cuervo

Ruben

Hola haber si me puedes ayudar…tengo esta sentencia para modificar un dato entero de mi tabla:
stmt.executeUpdate(«UPDATE Envio SET Recibido=1 WHERE Nreferencia=numero»);
Y en lugar de modificar el valor que cumpla la condicion del where me modifica todos los valores de Recibido de la tabla…¿Sabras porque es?

Víctor Cuervo

dito

ya esta solucionao

Víctor Cuervo

dito

no se pueden poner dos condiciones en el where del update ?????esque no se por que no me hace los cambios cuando ejecuto, alguien puede ayudarmeeeeee

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*