Java - Boton actualizar base de datos

 
Vista:
sin imagen de perfil

Boton actualizar base de datos

Publicado por Jose (3 intervenciones) el 19/05/2016 13:17:38
Hola,
tengo que hacer un metodo de actualizar base de datos que tiene que modificar,borrar o crear una nueva fila ,
como se podria hacer, estoy atascado en eso

gracias ,urje respuesta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Boton actualizar base de datos

Publicado por Jose Antonio Perez Torales (5 intervenciones) el 19/05/2016 19:16:08
Buenas tardes compañero, esto es muy facil, primero:

* Debes de crear una clase donde tengas un método que hará referencia a tu base de datos y pondrás el siguiente codigo, obviamente con los campos que tu requieres.

Método Actualizar:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
String sSQL = "";
	conectate mysql = new conectate();
	Connection cn = mysql.getConnection();
	String Id, nom, prov, pre , cant;
	Id=  txtid.getText();
	nom=  nombre.getText();
	prov= proveedor.getText();
	pre= precio.getText();
	cant= cantidad.getText();
 
	sSQL = "UPDATE producto " +
			"SET nombre = ?," +
			"proveedor = ?," +
			"precio = ?," +
			"cantidad = ?," +
			"WHERE id = "+id_actualizar;
/** id_actualizar es una variable de clase y se implementa en el metodo BuscarEditar(String id) donde toma el valor del parametro de dicho metodo*/
String  mensaje = "Los datos se han Modoficado de Manera Satisfactoria...";
 
try
{
	PreparedStatement pst = cn.prepareStatement(sSQL);// con esta sentencia se insertan los datos en la base de datos
	pst.setString(1, Id);
	pst.setString(2, nom);
	pst.setString(3, prov);
	pst.setString(4, pre);
	pst.setString(5, cant);
	int n = pst.executeUpdate();//valida si se guardaron los datos; si pst>0 entonces se guardaron
 
	if(n > 0)
	{
		JOptionPane.showMessageDialog(null, mensaje);
		CargarTabla("");//l momento de agregar un nuevo registro, actualiza la tabla
	}
}
catch (SQLException ex)
{
	JOptionPane.showMessageDialog(null, ex);
}

Método del botón Modificar (jButton):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MetodosBD metodosbd = new MetodosBD();
private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {
 
if(idcontacto.isEmpty()){
 
	JOptionPane.showMessageDialog(null, "No hay datos para modificar.\n"
			+ "Por favor, seleccione un registro de la tabla.", "Error en la operación",
			JOptionPane.ERROR_MESSAGE);
 
}else{
 
	metodosbd.Actualizar(txtNombrecontacto.getText(), txtApellidoscontacto.getText(), txtEmail.getText(),
			txtCelular.getText(), txtDireccion.getText(), cboxCiudad.getSelectedItem().toString(),
			idcontacto);
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Boton actualizar base de datos

Publicado por Jose (3 intervenciones) el 19/05/2016 20:03:24
Gracias, pero tiene que funcionar para cualquier base de datos cargada en mysql , y tiene ser en la misma clase ventana
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Boton actualizar base de datos

Publicado por Ricardo (1 intervención) el 20/05/2016 05:31:26
Para usar cualquier base de datos, solo cambia el valor en la variable.

/****************************************Script**************************************************/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Conexion {
 
    private static fina String bd = "nombreBaseDeDatos";
    private static final String url = "jdbc:mysql://localhost/"+bd;
    private static final String user = "root";
    private static final String password = "";
    private static Connection con = null;
 
    public static Connection getConnection()
    {
        try {
            if (con == null) {
                Class.forName("com.mysql.jdbc.Driver");
                con = DriverManager.getConnection(url, user, password);
                System.out.println("Conexion Correcta");
            }
        } catch (ClassNotFoundException | SQLException ex) {
            System.out.println(ex);
        }
        return con;
    }
}

*********Te dejo las clases para actualizar, entiende el código y espero te sirva.**********
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Boton actualizar base de datos

Publicado por Roi (3 intervenciones) el 20/05/2016 11:41:23
Hola , te adjunto como tiene que ser porque no me explique muy bien
gracias igualmente,a ver si lo das hecho gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Boton actualizar base de datos

Publicado por luisa nayeli (7 intervenciones) el 27/05/2016 03:06:25
esta es una manera facil y rapida de modificar datos en java


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
modificar m = new modificar();
private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {
 
if(idcontacto.isEmpty()){
 
	JOptionPane.showMessageDialog(null, "No hay datos para modificar.\n"
			+ "Por favor, seleccione un registro de la tabla.", "Error en la operación",
			JOptionPane.ERROR_MESSAGE);
 
}else{
 
	m.Actualizar(txtNombrecontacto.getText(), txtApellidoscontacto.getText(), txtEmail.getText(),
			txtCelular.getText(), txtDireccion.getText(), cboxCiudad.getSelectedItem().toString(),
			idcontacto);
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Boton actualizar base de datos

Publicado por Jose Antonio Perez Torales (5 intervenciones) el 28/05/2016 00:48:01
actualizar/UPDATE base de datos desde java
Submitted by yamidvo on Vie, 06/01/2012 - 12:31 Java Standard Edition
Todo estaba bien en mi base de datos, podia consultar y guardar registros, hasta que decidi empezar a actualizar utlizando el comando UPDATE; el programa esta hecho en el lenguaje java, cuando intento actualizar el registro me tira el siguiente error:
java.sql.SQLException : parameter index out of range (5> number of parameters, with is 4).
el nombre de la tabla es producto y tiene 5 campos: id, nombre, proveedor, precio, cantidad; todos los campos son tipo varchar.
el codigo del boton modificar es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
String sSQL = "";
conectate mysql = new conectate();
Connection cn = mysql.getConnection();
String Id, nom, prov, pre , cant;
Id= txtid.getText();
nom= nombre.getText();
prov= proveedor.getText();
pre= precio.getText();
cant= cantidad.getText();
sSQL = "UPDATE producto " +
"SET nombre = ?," +
"proveedor = ?," +
"precio = ?," +
"cantidad = ?," +
"WHERE id = "+id_actualizar;
/** id_actualizar es una variable de clase y se implementa en el metodo BuscarEditar(String id) donde toma el valor del parametro de dicho metodo*/
String mensaje = "Los datos se han Modoficado de Manera Satisfactoria...";
try
{
PreparedStatement pst = cn.prepareStatement(sSQL);// con esta sentencia se insertan los datos en la base de datos
pst.setString(1, Id);
pst.setString(2, nom);
pst.setString(3, prov);
pst.setString(4, pre);
pst.setString(5, cant);
int n = pst.executeUpdate();//valida si se guardaron los datos; si pst>0 entonces se guardaron
if(n > 0)
{
JOptionPane.showMessageDialog(null, mensaje);
CargarTabla("");//l momento de agregar un nuevo registro, actualiza la tabla
}
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, ex);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 80
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Boton actualizar base de datos

Publicado por Juan R. (108 intervenciones) el 29/05/2016 13:35:37
Buenas Jose Antonio

Suponiendo que la consulta creada está bien y que la variable id_actualizar lleva el valor que aseguras, y que la conexión con la base de Datos se ha hecho correctamente, yo lo haría de la siguiente manera:

1) Veo que utilizas variables para tratar después de añadir a tu BD (por ejemplo id o prov), pues yo lo cambiaría y lo haría de esta forma:

sSQL = "UPDATE producto " +
"SET nombre = " +nom+",proveedor = ," +prov+",precio = ," +pre+",cantidad = ,"+cant+" WHERE id = "+id_actualizar;


2) Por otro lado, si tienes abierta la conexión lo normal yo no preparía un Stament, si no ejecutarlo directamente (salvo que alguien que sepa más que yo, me corrija), sería algo así:

Statement sp = cn.createStatement();

3) La instrucción executeUpudate() aquí yo la usaría directamente como actualizador de datos:

sp.executeUpdate(sSQLl);

Con esta instrucción sería con la que se actualiza realmente la BD y no con el Statement (en mi manera de hacerlo).

4) Por último te quedaría cerrar el Statement con la base de datos (la consulta vaya):

sq.close();

Lo lógico sería que toda consulta que hagas a la BD lo encerraras en un bloque try ... catch. A parte de para gestionar los errores es una gran ayuda para saber dónde se tiene un error en la programación cuando no funciona algo sin que que te haga "crash" la aplicación.

El código quedaría más o menos así, pero claro tienes que comprobar como tienes todo, porque según como lo tengas puede que no funcione del todo (a mí me funciona perfectamente en una TPV desarrollada en Java):

consulta



Saludos y espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar