AYUDA SOBRE CODIGO (UPDATE) ES LO ULTIMO QUE ME FALTA :C

Iniciado por SebastianJava, 16 Noviembre 2013, 21:22 PM

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

SebastianJava

Hola amigos estoy fabricando un codigo pero mi problema es que quiero actualizar los datos desde una tabla a MYSQL, o sea que yo al clickear el registro sobre la tabla, con el boton MODIFICAR, tambien se actualizen de mi BD.

PARA MAYOR ILUSTRACION EL METODO ESTA EN LA LINEA 267.

GRACIAS POR SU AYUDA.... (SÓLO A LOS QUE AYUDAN  :o)

Código (=java) [Seleccionar]

package formularios;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.*;

import javax.swing.JTable;
import javax.swing.JScrollPane;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class ing_ani extends JFrame {

DefaultTableModel model;
private JTable t_datos;

private JPanel contentPane;
private JTextField t_nom;
private JTextField t_eda;
private JTextField t_col;
private JTextField t_tip;
private JTextField filtro;


// DECLARAMOS Y DAMOS ACCIONES

public ing_ani() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 563, 459);
setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\Sebastian\\Desktop\\huella.jpg"));
setTitle("Animales");
contentPane = new JPanel();
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel lblIngresoAnimales = new JLabel("Ingreso Animales");
lblIngresoAnimales.setBounds(227, 11, 116, 14);
contentPane.add(lblIngresoAnimales);

JLabel lblNombre = new JLabel("Nombre");
lblNombre.setBounds(29, 49, 66, 14);
contentPane.add(lblNombre);

JLabel lblEdad = new JLabel("Edad");
lblEdad.setBounds(29, 92, 66, 14);
contentPane.add(lblEdad);

JLabel lblColor = new JLabel("Color");
lblColor.setBounds(29, 132, 66, 14);
contentPane.add(lblColor);

JLabel lblTipo = new JLabel("Tipo");
lblTipo.setBounds(29, 172, 66, 14);
contentPane.add(lblTipo);

JLabel lblConsultarMasivo = new JLabel("Consultar masivo");
lblConsultarMasivo.setBounds(42, 221, 107, 14);
contentPane.add(lblConsultarMasivo);

JLabel lblBsquedaPorCriterio = new JLabel("B\u00FAsqueda por nombre");
lblBsquedaPorCriterio.setBounds(42, 254, 140, 14);
contentPane.add(lblBsquedaPorCriterio);

t_nom = new JTextField();
t_nom.setBounds(105, 46, 267, 20);
contentPane.add(t_nom);
t_nom.setColumns(10);

t_eda = new JTextField();
t_eda.setBounds(105, 89, 267, 20);
contentPane.add(t_eda);
t_eda.setColumns(10);

t_col = new JTextField();
t_col.setBounds(105, 129, 267, 20);
contentPane.add(t_col);
t_col.setColumns(10);

t_tip = new JTextField();
t_tip.setBounds(105, 169, 267, 20);
contentPane.add(t_tip);
t_tip.setColumns(10);

// BOTON LIMPIAR
JButton btnLimpiar = new JButton("Limpiar");
btnLimpiar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
limpiar();
}
});
btnLimpiar.setBounds(419, 35, 89, 23);
contentPane.add(btnLimpiar);
// TERMINO BOTON LIMPIAR

// BOTON GRABAR
JButton btnGrabar = new JButton("Grabar");
btnGrabar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
grabar();
limpiar();
cargar();
}
});
btnGrabar.setBounds(419, 74, 89, 23);
contentPane.add(btnGrabar);
// / TERMINO BOTON GRABAR

// BOTON MODIFICAR
JButton btnModificar = new JButton("Modificar");
btnModificar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
modificar();
}
});
btnModificar.setBounds(419, 109, 89, 23);
contentPane.add(btnModificar);

// / TERMINO BOTON MODIFICAR

// INICIO BOTON ELIMINAR
JButton btnEliminar = new JButton("Eliminar");
btnEliminar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
eliminar();
}

});
btnEliminar.setBounds(419, 143, 89, 23);
contentPane.add(btnEliminar);
// TERMINO BOTON ELIMINAR

// INICIO BOTON CONSULTAR
JButton btnConsultar = new JButton("Consultar");
btnConsultar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cargar();
JOptionPane.showMessageDialog(null, "Tabla Actualizada");
}
});
btnConsultar.setBounds(207, 217, 89, 23);
contentPane.add(btnConsultar);
// TERMINO DE BOTON CONSULTAR

// INICIO BOTON SALIR
JButton btnSalir = new JButton("Salir");
btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
salir();
}
});
btnSalir.setBounds(419, 177, 89, 23);
contentPane.add(btnSalir);
// TERMINO BOTON SALIR

// CREACION DE TABLA

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(42, 282, 459, 127);
contentPane.add(scrollPane);
t_datos = new JTable();
scrollPane.setViewportView(t_datos);

// ACCION JTEXT BUSQUEDA POR NOMBRE

filtro = new JTextField();
filtro.addKeyListener(new KeyAdapter() {

public void keyReleased(KeyEvent arg0) {
cargarfil(filtro.getText());
}
});
filtro.setBounds(207, 251, 134, 20);
contentPane.add(filtro);
filtro.setColumns(10);

// TERMINO ACCION JTEXT BUSQUEDA POR NOMBRE

// COLORES AL ENCABEZADO DE UN JTABLE Y LETRA
t_datos.getTableHeader().setBackground(Color.DARK_GRAY);
t_datos.getTableHeader().setForeground(Color.WHITE);

// TERMINO TABLA

// CARGA LA TABLA CON SUS REGISTROS AL INICIAR LA VENTANA
cargar();
cargarfil("");
}

// INICIO METODO LIMPIAR
void limpiar() {
t_nom.setText("");
t_eda.setText("");
t_col.setText("");
t_tip.setText("");

}

// FIN METODO LIMPIAR

// INICIO DE METODO GRABAR

void grabar() {
try {
conectar cc = new conectar();
Connection cn = cc.conexion();
String nom, eda, col, tip;
String sql = "";
nom = t_nom.getText();
eda = t_eda.getText();
col = t_col.getText();
tip = t_tip.getText();
sql = "INSERT INTO animales (nom_ani, eda_ani, col_ani, tip_ani) VALUES (?,?,?,?)";

PreparedStatement pst = cn.prepareStatement(sql);

pst.setString(1, nom);
pst.setString(2, eda);
pst.setString(3, col);
pst.setString(4, tip);
pst.executeUpdate();

JOptionPane.showMessageDialog(null, "Registrado Grabado con exito");

} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, "ERROR");
}

}
// FIN DE METODO GRABAR


// INICIO DE METODO ELIMINAR
void eliminar() {
try {

int registros = t_datos.getSelectedRow();
String sql = "";
sql = "DELETE FROM animales where cod_ani="+ t_datos.getValueAt(registros, 0);
conectar cc = new conectar();
Connection cn = cc.conexion();
PreparedStatement pst = cn.prepareStatement(sql);
int n = pst.executeUpdate(sql);
if (n > 0) {
cargar();
}
JOptionPane.showMessageDialog(null, "Datos eliminados");

} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "ERROR" + e1.getMessage());
}
}

// FIN DE METODO ELIMINAR


// INICIO DE METODO MODIFICAR
void modificar() {
try {
int registros = t_datos.getSelectedRow();

String sql ="";
sql= "UPDATE FROM animales nom_ani, eda_ani , col_ani , tip_ani="+"WHERE cod_ani="+t_datos.getValueAt (registros,0);
conectar cc = new conectar();
Connection cn = cc.conexion();
String nom, eda, col, tip;

nom = t_nom.getText();
eda = t_eda.getText();
col = t_col.getText();
tip = t_tip.getText();

PreparedStatement pst = cn.prepareStatement(sql);
pst.setString (1, nom);
pst.setString (2, eda);
pst.setString (3, col);
pst.setString (4, tip);


int n = pst.executeUpdate();
if (n>0){
cargar();
JOptionPane.showMessageDialog(null, "Datos Modificados");
}
}catch (Exception e1){

JOptionPane.showMessageDialog(null, "ERROR" + e1.getMessage());
}
}



// INICIO DE METODO SALIR
void salir() {
System.exit(0);
}

// FIN DE METODO SALIR

// INICIO METODO CARGAR DATOS BD A TABLA

void cargarfil(String valor) {
try {
String[] titulos = { "Codigo", "Nombre", "Edad", "Color", "Tipo" };
String[] registros = new String[5];

String sql = "SELECT * FROM animales where nom_ani LIKE '%" + valor
+ "%'";

model = new DefaultTableModel(null, titulos);

conectar cc = new conectar();
Connection cn = cc.conexion();
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sql);

while (rs.next()) {
registros[0] = rs.getString("cod_ani");
registros[1] = rs.getString("nom_ani");
registros[2] = rs.getString("eda_ani");
registros[3] = rs.getString("col_ani");
registros[4] = rs.getString("tip_ani");
model.addRow(registros);
}
t_datos.setModel(model);

} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, "ERROR");
}
}

// FIN METODO CARGAR

void cargar() {
try {
String[] titulos = { "Codigo", "Nombre", "Edad", "Color", "Tipo" };
String[] registros = new String[5];

String sql = "SELECT * FROM animales";

model = new DefaultTableModel(null, titulos);

conectar cc = new conectar();
Connection cn = cc.conexion();
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sql);

while (rs.next()) {
registros[0] = rs.getString("cod_ani");
registros[1] = rs.getString("nom_ani");
registros[2] = rs.getString("eda_ani");
registros[3] = rs.getString("col_ani");
registros[4] = rs.getString("tip_ani");
model.addRow(registros);
}
t_datos.setModel(model);

} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, "ERROR");
}
}

// FIN METODO CARGAR


// DEJAMOS VISIBLE EL FRAME
public static void main(String[] args) {
ing_ani frame = new ing_ani();
frame.setVisible(true);

}
}

[ / code]


Mitsu

#1
1) Nadie está obligado a ayudarte. Así que no vengas con ese tipo de indirectas.

2) Para actualizar una fila, creo que es de la siguiente manera:

Código (=java) [Seleccionar]

// INICIO DE METODO MODIFICAR
void modificar() {

try {
int registros = t_datos.getSelectedRow();

String nom = t_nom.getText();
String eda = t_eda.getText();
String col = t_col.getText();
String tip = t_tip.getText();

String sql ="UPDATE animales SET "+ "nom_ani='"+ nom+ "', eda_ani="+ eda + "', col_ani=" + col + "', tip_ani =" + tip +" WHERE  cod_ani="+ t_datos.getValueAt(registros, 0)+";";

conectar cc = new conectar();
Connection cn = cc.conexion();

PreparedStatement pst = cn.prepareStatement(sql);
int n = pst.executeUpdate();

if (n>0){
cargar();
JOptionPane.showMessageDialog(null, "Datos Modificados");
}
}catch (Exception e1){

JOptionPane.showMessageDialog(null, "ERROR" + e1.getMessage());
}
}

SebastianJava

1.- ESTAS EN LO CIERTO.. NADIE ESTA OBLIGADO, PERO POR ALGO SE POSTEA, ES PARA AYUDAR, SOBRE TODO LOS QUE SABEN MÁS, COMO ORIENTAR ETC., ESE ES EL GRAN OBJETIVO DE ESTE FORO, ENTRE OTROS....

2.- SI NO SE APOYA, NO COMENTE. SOBRE TODO EN MALA ONDA.


3.- COMO TENGO MIS PRINCIPIOS, MUCHAS GRACIAS.

4.- VERIFICANDO CODIGO

Mitsu

#3
Cita de: SebastianJava en 16 Noviembre 2013, 21:22 PM
GRACIAS POR SU AYUDA.... (SÓLO A LOS QUE AYUDAN  :o)

Simplemente por educación da las gracias a cada uno que ha visto el tema y ha tenido la intención de ayudarte, aunque no haya podido. No tienes que añadir nada más.

En fin, espero haberte ayudado. Saludos..

PD: Escribe en minúscula. Parece que me estuvieras gritando xD

llAudioslavell

En el metodo modificar no lo mandes los parametros asi directamente, hazlo de la misma manera como lo hicistes en el metodo grabar, es mas conveniente.

.:UND3R:.

Cita de: SebastianJava en 16 Noviembre 2013, 23:59 PM
1.- ESTAS EN LO CIERTO.. NADIE ESTA OBLIGADO, PERO POR ALGO SE POSTEA, ES PARA AYUDAR, SOBRE TODO LOS QUE SABEN MÁS, COMO ORIENTAR ETC., ESE ES EL GRAN OBJETIVO DE ESTE FORO, ENTRE OTROS....

2.- SI NO SE APOYA, NO COMENTE. SOBRE TODO EN MALA ONDA.


3.- COMO TENGO MIS PRINCIPIOS, MUCHAS GRACIAS.

4.- VERIFICANDO CODIGO

Me molesta tu forma de expresarte, eres un mal insolente, y quizás por eso mismo pocos te quieren ayudar, y aquellos que te están ayudando como Mitsu entre otros solo lo hacen por satisfacción propia por que a nadie le gusta ayudar a gente tan desubicada y sin respeto.

PD: Notificaré al staff por el uso indiscriminado de mayúsculas.

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

Lurker

#6
Cita de: SebastianJava en 16 Noviembre 2013, 23:59 PM
1.- ESTAS EN LO CIERTO.. NADIE ESTA OBLIGADO, PERO POR ALGO SE POSTEA, ES PARA AYUDAR, SOBRE TODO LOS QUE SABEN MÁS, COMO ORIENTAR ETC., ESE ES EL GRAN OBJETIVO DE ESTE FORO, ENTRE OTROS....

2.- SI NO SE APOYA, NO COMENTE. SOBRE TODO EN MALA ONDA.


3.- COMO TENGO MIS PRINCIPIOS, MUCHAS GRACIAS.

4.- VERIFICANDO CODIGO

CitarGRACIAS POR SU AYUDA.... (SÓLO A LOS QUE AYUDAN

Pues mira, yó te ayudo, te aviso de que si sigues usando las mayusculas de forma indiscriminada, y sin atender lo que al respecto pone en las normas del Foro, lo más probable es que el proximo aviso sea el del BAN.

:¬¬
No todo lo que se puede hacer, se debe hacer.