Programación General > Java

 Dividir Clase En Clases

(1/1)

martin campos quintero:
Hola amigos, tengo un problema, en la materia ing. de software nos pidieron un sistema para control dental. Nos lo pidieron por versiones y en la primera versión entregamos el directorio de pacientes y el directorio de dentistas.

El caso es que la profesora nos dijo que habiamos hecho la clase muy grande. Que sacaramos varias funciones de la clase y los metieramos como otra clase, el problema es que no sabemos como hacerlo. Les pongo el código de la clase directorio pacientes.



--- Código: Text ---  import javax.swing.*;import java.awt.event.*;import java.awt.*;import javax.swing.table.*; //DataBase Packages import java.net.*;import java.io.*;import java.sql.*; //Main Class class directorio_pacientes extends JFrame implements ActionListener{  private Statement st;  private Connection con;   //List of Labels   private JLabel lblclave_anterior;  private JLabel lblclave_paciente;  private JLabel lblsexo;  private JLabel lbledad;  private JLabel lblnombre;  private JLabel lbldireccion;  private JLabel lbltelefono;   //List of TextFields   private JTextField txtclave_anterior;  private JTextField txtclave_paciente;  private JTextField txtsexo;  private JTextField txtedad;  private JTextField txtnombre;  private JTextField txtdireccion;  private JTextField txttelefono;   //List of Buttons   private JButton btnSaveAdd;  private JButton btnSaveEdit;  private JButton btnSaveDelete;  private JButton btnAdd;  private JButton btnEdit;  private JButton btnDelete;  private JButton btnExit;  private JButton btnRefresh;  private JButton btnCancel;   //List of Panel   private JPanel btnpanel;  private JPanel panel;  private JTable table;   //Table   private DefaultTableModel tmodel;   //Container   private Container cpane;   directorio_pacientes(int choice)  {    switch(choice)    {      case 1:        //Initial Window         setTitle("DIRECTORIO DE PACIENTES");        setBounds(1, 200, 800, 230);        setResizable(false);         //cotainer         cpane = getContentPane();         //components         tmodel = new DefaultTableModel();        table = new JTable(tmodel);        SetColHeader();         btnpanel = new JPanel(new GridLayout(1, 5, 5, 0));        btnAdd = new JButton ("Agregar");        btnEdit = new JButton ("Modificar");        btnDelete = new JButton ("Eliminar");        btnRefresh = new JButton ("Actualizar");        btnExit = new JButton ("Salir");         btnAdd.addActionListener(this);        btnEdit.addActionListener(this);        btnDelete.addActionListener(this);        btnRefresh.addActionListener(this);        btnExit.addActionListener(this);         btnpanel.add(btnAdd);        btnpanel.add(btnEdit);        btnpanel.add(btnDelete);        btnpanel.add(btnRefresh);        btnpanel.add(btnExit);         cpane.add(new JScrollPane(table));        cpane.add(btnpanel, BorderLayout.SOUTH);        break;      case 2:        //Appending Window         setTitle("Agregado de datos...");        setBounds(200, 200, 500, 200);        setResizable(false);         //cotainer         cpane = getContentPane();        cpane.setLayout(new FlowLayout());         //Components         panel = new JPanel(new GridLayout(8, 1, 5, 0));         lblclave_paciente = new JLabel(" Clave del paciente ");        lblnombre = new JLabel(" Nombre del paciente ");        lbldireccion = new JLabel(" Dirección ");        lbltelefono = new JLabel(" Teléfono ");        lbledad = new JLabel(" Edad ");        lblsexo = new JLabel(" Sexo ");         txtclave_paciente = new JTextField(15);        txtnombre = new JTextField(15);        txtdireccion = new JTextField(15);        txttelefono = new JTextField(15);        txtedad = new JTextField(3);        txtsexo = new JTextField(1);         panel.add(lblclave_paciente);        panel.add(txtclave_paciente);        panel.add(lblnombre);        panel.add(txtnombre);        panel.add(txtnombre);        panel.add(lbldireccion);        panel.add(txtdireccion);        panel.add(lbltelefono);        panel.add(txttelefono);        panel.add(lbledad);        panel.add(txtedad);        panel.add(lblsexo);        panel.add(txtsexo);         btnpanel = new JPanel(new GridLayout(2, 1, 10, 5));        btnSaveAdd = new JButton ("Guardar");        btnCancel = new JButton ("Cancelar");         btnSaveAdd.addActionListener(this);        btnCancel.addActionListener(this);         btnpanel.add(btnSaveAdd);        btnpanel.add(btnCancel);         cpane.add(panel);        cpane.add(btnpanel, BorderLayout.EAST);        break;      case 3:        //Editing window         setTitle("Modificación de datos...");        setBounds(200, 200, 500, 250);        setResizable(false);         //cotainer         cpane = getContentPane();        cpane.setLayout(new FlowLayout());         //Components         panel = new JPanel(new GridLayout(10, 1, 5, 0));        lblclave_anterior = new JLabel(" Clave anterior del paciente ");        txtclave_anterior = new JTextField(15);         lblclave_paciente = new JLabel(" Nueva clave del paciente ");        lblnombre = new JLabel(" Nombre del paciente ");        lbldireccion = new JLabel(" Dirección ");        lbltelefono = new JLabel(" Teléfono ");        lbledad = new JLabel(" Edad ");        lblsexo = new JLabel(" Sexo ");         txtclave_paciente = new JTextField(15);        txtnombre = new JTextField(15);        txtdireccion = new JTextField(15);        txttelefono = new JTextField(15);        txtedad = new JTextField(3);        txtsexo = new JTextField(1);         panel.add(lblclave_anterior);        panel.add(txtclave_anterior);        panel.add(lblclave_paciente);        panel.add(txtclave_paciente);        panel.add(lblnombre);        panel.add(txtnombre);        panel.add(lbldireccion);        panel.add(txtdireccion);        panel.add(lbltelefono);        panel.add(txttelefono);        panel.add(lbledad);        panel.add(txtedad);        panel.add(lblsexo);        panel.add(txtsexo);         btnpanel = new JPanel(new GridLayout(2, 1, 10, 5));        btnSaveEdit = new JButton ("Guardar");        btnCancel = new JButton ("Cancelar");         btnSaveEdit.addActionListener(this);        btnCancel.addActionListener(this);         btnpanel.add(btnSaveEdit);        btnpanel.add(btnCancel);         cpane.add(panel);        cpane.add(btnpanel, BorderLayout.EAST);        break;      case 4:        //Deleting window         setTitle("Eliminando datos...");        setBounds(200, 200, 300, 125);        setResizable(false);         //cotainer         cpane = getContentPane();        cpane.setLayout(new FlowLayout());         //Components         panel = new JPanel(new GridLayout(2, 1, 5, 0));        lblclave_paciente = new JLabel("Clave del paciente a eliminar ");        txtclave_paciente = new JTextField(15);         panel.add(lblclave_paciente);        panel.add(txtclave_paciente);         btnpanel = new JPanel(new GridLayout(2, 1, 10, 5));        btnSaveDelete = new JButton ("Eliminar");        btnCancel = new JButton ("Cancelar");         btnSaveDelete.addActionListener(this);        btnCancel.addActionListener(this);         btnpanel.add(btnSaveDelete);        btnpanel.add(btnCancel);         cpane.add(panel);        cpane.add(btnpanel, BorderLayout.EAST);        break;    }    //Window Properties     setDefaultCloseOperation(HIDE_ON_CLOSE);    setVisible(true);     //conection to DataBase     conectar_a_bd();  }   public void actionPerformed (ActionEvent ae)  {    if (ae.getSource() == btnAdd)    {      new directorio_pacientes(2);    }    else if (ae.getSource() == btnEdit)    {      new directorio_pacientes(3);    }    else if (ae.getSource() == btnDelete)    {      new directorio_pacientes(4);    }    else if (ae.getSource() == btnExit)    {      System.exit(0);    }    else if (ae.getSource() == btnCancel)    {      setVisible(false);    }    else if(ae.getSource() == btnSaveAdd)    {      agregar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txtsexo.getText(), txttelefono.getText(),txtedad.getText());      txtclave_paciente.setText("");      txtnombre.setText("");      txtdireccion.setText("");      txttelefono.setText("");      txtedad.setText("");      txtsexo.setText("");    }    else if(ae.getSource() == btnSaveEdit)    {      modificar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txttelefono.getText(), txtclave_anterior.getText(),txtedad.getText(), txtsexo.getText());      txtclave_anterior.setText("");      txtclave_paciente.setText("");      txtnombre.setText("");      txtdireccion.setText("");      txttelefono.setText("");    }    else if(ae.getSource() == btnSaveDelete)    {      eliminar_datos(txtclave_paciente.getText());      txtclave_paciente.setText("");    }    else if(ae.getSource() == btnRefresh)    {      extraer_datos();    }  }   public static void main(String arg[])  {    directorio_pacientes c = new directorio_pacientes(1);    c.extraer_datos();  }   private void SetColHeader()  {    tmodel.addColumn("Clave del paciente");    tmodel.addColumn("Nombre");    tmodel.addColumn("Dirección");    tmodel.addColumn("Sexo");    tmodel.addColumn("Teléfono");    tmodel.addColumn("Edad");   }   private void conectar_a_bd ()  {    try    {      String dsn = "Medi";       //load driver      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");       //make connection      con = DriverManager.getConnection("jdbc:odbc:" + dsn);       //create statement      st = con.createStatement();    }    catch (Exception e) {System.out.println(e);}  }   private void agregar_datos (String clave, String nombre, String direccion, String telefono, String edad, String sexo)  {    try    {      //prepare statement      String qry = "Insert into directorio_paciente values (?, ?, ?, ?, ?, ?)";      System.out.println(clave + "\t"+nombre+ "\t"+direccion+ "\t"+telefono+ "\t"+edad+ "\t"+sexo);      //System.out.println("Read only "+con.isReadOnly());      //System.out.println("Closed "+con.isClosed());       PreparedStatement ps = con.prepareStatement(qry);       ps.setString(1, clave);      ps.setString(2, nombre);      ps.setString(3, direccion);      ps.setString(4,telefono);      ps.setString(5,edad);      ps.setString(6,sexo);       ps.executeUpdate();    }    catch(Exception e) {System.out.println(e + "\t" + e.getMessage());  }  }   private void modificar_datos (String clave, String nombre, String direccion, String telefono, String clave_anterior, String edad, String sexo)  {    try    {      //prepare statement      String qry = "Update directorio_paciente set clave = ?, nombre = ?, direccion = ?, sexo = ?, telefono = ?, edad = ? where clave = ?";      PreparedStatement ps = con.prepareStatement(qry);       ps.setString(1, clave);      ps.setString(2, nombre);      ps.setString(3, direccion);      ps.setString(4, sexo);      ps.setString(5, telefono);      ps.setString(6, edad);             ps.setString(7, clave_anterior);       ps.executeUpdate();    }    catch(Exception e) {System.out.println(e);  }  }   private void eliminar_datos (String cond)  {    try    {      //prepare statement      String qry = "Delete from directorio_paciente where clave = ?";      PreparedStatement ps = con.prepareStatement(qry);       ps.setString(1, cond);       ps.executeUpdate();    }     catch(Exception e) {System.out.println(e);  }  }   private void extraer_datos ()  {    try    {      int row = tmodel.getRowCount();      while(row > 0)      {        row--;        tmodel.removeRow(row);      }       //execute query      ResultSet rs = st.executeQuery("Select * from directorio_paciente");       //get metadata      ResultSetMetaData md = rs.getMetaData();      int colcount = md.getColumnCount();       Object[] data = new Object[colcount];      //extracting data       while (rs.next())      {        for (int i=1; i<=colcount; i++)        {          data[i-1] = rs.getString(i);        }        tmodel.addRow(data);      }    }    catch(Exception e) {System.out.println(e);  }  }}   

Nos dijo que sacaramos de la clase la función conectar_a_bd, agregar_datos, eliminar_datos, modificar_datos. Y que los metieramos a otra clase llamada gestion_de_bd.

Y que también las instrucciones que se encuentran entre los cases(o sea las pantallas)  las llevemos a otra clase.

El problema es que no sabemos como vamos a llamar a las otras clases desde la clase directorio de pacientes.

Si pudieran ayudarnos se los agradeceriamos mucho.

Güorker:
Hola,

Lo que podeis hacer es lo siguiente:

- Crear una clase estatica "gestion_de_BD", para no necesitar crear instancias de esa clase (Recordad que sus metodos deben ser tambien estaticos):

--- Código: Text --- static class gestion_de_BD {...public static  void conectar_a_bd (){...}public static void ....}  
Cuando tengais todos los metodos en esa clase, para llamar a sus metodos desde otra clase:

--- Código: Text --- ....gestion_de_BD. agregar_datos(txtclave_paciente.getText(),.... );...  
Espero haber ayudado en algo. Saludos

JuanK:
asi es,
de heco para el directorio de pacientes y de dentistas se hace recomendable:

1- clase persona
2- una clase dentista que herede de la clase persona
3- una clase paciente que herede de la clase persona
4- una clase directorio de personas, de la cual deberias instanciar  para crear directorio de pacientes y de dentistas
5- una clase que relaiza los trabajos de conexion e intercambio de datos con la base de datos.
6- otra para que maneje el Form o sea la interfaz grafica
7- Tal vez Una clase que que realice los procesos de computo que se requieran.

martin campos quintero:
Hola gracias por su ayuda, ya comprobé que si funciona así como me lo plantearon, bueno funciona hasta cierto punto. El problema que nos surgió es que como la conexión con la base de datos la creamos dentro de conectar_a_bd y la asignamos a la variable "con", como podemos hacer para que las otras clases obtengan el valor de "con", bueno en este caso las otras funciones que están en la clase gestion_de_bd. Modificamos el código y nos surgieron varios errores.


Como ya se habran dado cuenta jeje, somos primerizos en java :S.


Les pido un favor, si no seria mucha molestia. Que me ayudaran a corregir lo de este archivo, directorio_pacientes. Lo que pasa es que tenemos que hacer un sistema para dentistas y pues si no sabemos como hacer esto pues estamos fritos jeje. O si es mucha molestia lo de corregir el archivo pues siquiera me den un ejemplo en código fuente donde aparezca esto que necesitamos.


Código modificado y con varios errores :s




--- Código: Text ---  import javax.swing.*;import java.awt.event.*;import java.awt.*;import javax.swing.table.*; //DataBase Packages import java.net.*;import java.io.*;import java.sql.*; //Main Class class directorio_pacientes extends JFrame implements ActionListener{  private Statement st;  private Connection con;   //List of Labels   private JLabel lblclave_anterior;  private JLabel lblclave_paciente;  private JLabel lblsexo;  private JLabel lbledad;  private JLabel lblnombre;  private JLabel lbldireccion;  private JLabel lbltelefono;   //List of TextFields   private JTextField txtclave_anterior;  private JTextField txtclave_paciente;  private JTextField txtsexo;  private JTextField txtedad;  private JTextField txtnombre;  private JTextField txtdireccion;  private JTextField txttelefono;   //List of Buttons   private JButton btnSaveAdd;  private JButton btnSaveEdit;  private JButton btnSaveDelete;  private JButton btnAdd;  private JButton btnEdit;  private JButton btnDelete;  private JButton btnExit;  private JButton btnRefresh;  private JButton btnCancel;   //List of Panel   private JPanel btnpanel;  private JPanel panel;  private JTable table;   //Table   private DefaultTableModel tmodel;   //Container   private Container cpane;   directorio_pacientes(int choice)  {    switch(choice)    {      case 1:        //Initial Window         setTitle("DIRECTORIO DE PACIENTES");        setBounds(1, 200, 800, 230);        setResizable(false);         //cotainer         cpane = getContentPane();         //components         tmodel = new DefaultTableModel();        table = new JTable(tmodel);        SetColHeader();         btnpanel = new JPanel(new GridLayout(1, 5, 5, 0));        btnAdd = new JButton ("Agregar");        btnEdit = new JButton ("Modificar");        btnDelete = new JButton ("Eliminar");        btnRefresh = new JButton ("Actualizar");        btnExit = new JButton ("Salir");         btnAdd.addActionListener(this);        btnEdit.addActionListener(this);        btnDelete.addActionListener(this);        btnRefresh.addActionListener(this);        btnExit.addActionListener(this);         btnpanel.add(btnAdd);        btnpanel.add(btnEdit);        btnpanel.add(btnDelete);        btnpanel.add(btnRefresh);        btnpanel.add(btnExit);         cpane.add(new JScrollPane(table));        cpane.add(btnpanel, BorderLayout.SOUTH);        break;      case 2:        //Appending Window         setTitle("Agregado de datos...");        setBounds(200, 200, 500, 200);        setResizable(false);         //cotainer         cpane = getContentPane();        cpane.setLayout(new FlowLayout());         //Components         panel = new JPanel(new GridLayout(8, 1, 5, 0));         lblclave_paciente = new JLabel(" Clave del paciente ");        lblnombre = new JLabel(" Nombre del paciente ");        lbldireccion = new JLabel(" Dirección ");        lbltelefono = new JLabel(" Teléfono ");        lbledad = new JLabel(" Edad ");        lblsexo = new JLabel(" Sexo ");         txtclave_paciente = new JTextField(15);        txtnombre = new JTextField(15);        txtdireccion = new JTextField(15);        txttelefono = new JTextField(15);        txtedad = new JTextField(3);        txtsexo = new JTextField(1);         panel.add(lblclave_paciente);        panel.add(txtclave_paciente);        panel.add(lblnombre);        panel.add(txtnombre);        panel.add(txtnombre);        panel.add(lbldireccion);        panel.add(txtdireccion);        panel.add(lbltelefono);        panel.add(txttelefono);        panel.add(lbledad);        panel.add(txtedad);        panel.add(lblsexo);        panel.add(txtsexo);         btnpanel = new JPanel(new GridLayout(2, 1, 10, 5));        btnSaveAdd = new JButton ("Guardar");        btnCancel = new JButton ("Cancelar");         btnSaveAdd.addActionListener(this);        btnCancel.addActionListener(this);         btnpanel.add(btnSaveAdd);        btnpanel.add(btnCancel);         cpane.add(panel);        cpane.add(btnpanel, BorderLayout.EAST);        break;      case 3:        //Editing window         setTitle("Modificación de datos...");        setBounds(200, 200, 500, 250);        setResizable(false);         //cotainer         cpane = getContentPane();        cpane.setLayout(new FlowLayout());         //Components         panel = new JPanel(new GridLayout(10, 1, 5, 0));        lblclave_anterior = new JLabel(" Clave anterior del paciente ");        txtclave_anterior = new JTextField(15);         lblclave_paciente = new JLabel(" Nueva clave del paciente ");        lblnombre = new JLabel(" Nombre del paciente ");        lbldireccion = new JLabel(" Dirección ");        lbltelefono = new JLabel(" Teléfono ");        lbledad = new JLabel(" Edad ");        lblsexo = new JLabel(" Sexo ");         txtclave_paciente = new JTextField(15);        txtnombre = new JTextField(15);        txtdireccion = new JTextField(15);        txttelefono = new JTextField(15);        txtedad = new JTextField(3);        txtsexo = new JTextField(1);         panel.add(lblclave_anterior);        panel.add(txtclave_anterior);        panel.add(lblclave_paciente);        panel.add(txtclave_paciente);        panel.add(lblnombre);        panel.add(txtnombre);        panel.add(lbldireccion);        panel.add(txtdireccion);        panel.add(lbltelefono);        panel.add(txttelefono);        panel.add(lbledad);        panel.add(txtedad);        panel.add(lblsexo);        panel.add(txtsexo);         btnpanel = new JPanel(new GridLayout(2, 1, 10, 5));        btnSaveEdit = new JButton ("Guardar");        btnCancel = new JButton ("Cancelar");         btnSaveEdit.addActionListener(this);        btnCancel.addActionListener(this);         btnpanel.add(btnSaveEdit);        btnpanel.add(btnCancel);         cpane.add(panel);        cpane.add(btnpanel, BorderLayout.EAST);        break;      case 4:        //Deleting window         setTitle("Eliminando datos...");        setBounds(200, 200, 300, 125);        setResizable(false);         //cotainer         cpane = getContentPane();        cpane.setLayout(new FlowLayout());         //Components         panel = new JPanel(new GridLayout(2, 1, 5, 0));        lblclave_paciente = new JLabel("Clave del paciente a eliminar ");        txtclave_paciente = new JTextField(15);         panel.add(lblclave_paciente);        panel.add(txtclave_paciente);         btnpanel = new JPanel(new GridLayout(2, 1, 10, 5));        btnSaveDelete = new JButton ("Eliminar");        btnCancel = new JButton ("Cancelar");         btnSaveDelete.addActionListener(this);        btnCancel.addActionListener(this);         btnpanel.add(btnSaveDelete);        btnpanel.add(btnCancel);         cpane.add(panel);        cpane.add(btnpanel, BorderLayout.EAST);        break;    }    //Window Properties     setDefaultCloseOperation(HIDE_ON_CLOSE);    setVisible(true);     //conection to DataBase     gestion_de_bd.conectar_a_bd();  }   public void actionPerformed (ActionEvent ae)  {    if (ae.getSource() == btnAdd)    {      new directorio_pacientes(2);    }    else if (ae.getSource() == btnEdit)    {      new directorio_pacientes(3);    }    else if (ae.getSource() == btnDelete)    {      new directorio_pacientes(4);    }    else if (ae.getSource() == btnExit)    {      System.exit(0);    }    else if (ae.getSource() == btnCancel)    {      setVisible(false);    }    else if(ae.getSource() == btnSaveAdd)    {      gestion_de_bd.agregar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txtsexo.getText(), txttelefono.getText(),txtedad.getText());      txtclave_paciente.setText("");      txtnombre.setText("");      txtdireccion.setText("");      txttelefono.setText("");      txtedad.setText("");      txtsexo.setText("");    }    else if(ae.getSource() == btnSaveEdit)    {      gestion_de_bd.modificar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txttelefono.getText(), txtclave_anterior.getText(),txtedad.getText(), txtsexo.getText());      txtclave_anterior.setText("");      txtclave_paciente.setText("");      txtnombre.setText("");      txtdireccion.setText("");      txttelefono.setText("");    }    else if(ae.getSource() == btnSaveDelete)    {      gestion_de_bd.eliminar_datos(txtclave_paciente.getText());      txtclave_paciente.setText("");    }    else if(ae.getSource() == btnRefresh)    {      gestion_de_bd.extraer_datos();    }  }   public static void main(String arg[])  {    directorio_pacientes c = new directorio_pacientes(1);    gestion_de_bd.extraer_datos();    //c.extraer_datos();  }   private void SetColHeader()  {    tmodel.addColumn("Clave del paciente");    tmodel.addColumn("Nombre");    tmodel.addColumn("Dirección");    tmodel.addColumn("Sexo");    tmodel.addColumn("Teléfono");    tmodel.addColumn("Edad");   } /*  private void conectar_a_bd ()  {    try    {      String dsn = "Medi";       //load driver      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");       //make connection      con = DriverManager.getConnection("jdbc:odbc:" + dsn);       //create statement      st = con.createStatement();    }    catch (Exception e) {System.out.println(e);}  } */        }  class gestion_de_bd{    private Statement st;  private Connection con;    public static void conectar_a_bd ()  {     try    {      String dsn = "Medi";       //load driver      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");       //make connection      con = DriverManager.getConnection("jdbc:odbc:" + dsn);       //create statement      st = con.createStatement();    }    catch (Exception e) {System.out.println(e);}          }       public static void agregar_datos (String clave, String nombre, String direccion, String telefono, String edad, String sexo)  {    try    {      //prepare statement      String qry = "Insert into directorio_paciente values (?, ?, ?, ?, ?, ?)";      System.out.println(clave + "\t"+nombre+ "\t"+direccion+ "\t"+telefono+ "\t"+edad+ "\t"+sexo);      //System.out.println("Read only "+con.isReadOnly());      //System.out.println("Closed "+con.isClosed());       PreparedStatement ps = con.prepareStatement(qry);       ps.setString(1, clave);      ps.setString(2, nombre);      ps.setString(3, direccion);      ps.setString(4,telefono);      ps.setString(5,edad);      ps.setString(6,sexo);       ps.executeUpdate();    }    catch(Exception e) {System.out.println(e + "\t" + e.getMessage());  }  }       public static void modificar_datos (String clave, String nombre, String direccion, String telefono, String clave_anterior, String edad, String sexo)  {    try    {      //prepare statement      String qry = "Update directorio_paciente set clave = ?, nombre = ?, direccion = ?, sexo = ?, telefono = ?, edad = ? where clave = ?";      PreparedStatement ps = con.prepareStatement(qry);       ps.setString(1, clave);      ps.setString(2, nombre);      ps.setString(3, direccion);      ps.setString(4, sexo);      ps.setString(5, telefono);      ps.setString(6, edad);             ps.setString(7, clave_anterior);       ps.executeUpdate();    }    catch(Exception e) {System.out.println(e);  }  }      public static void eliminar_datos (String cond)  {    try    {      //prepare statement      String qry = "Delete from directorio_paciente where clave = ?";      PreparedStatement ps = con.prepareStatement(qry);       ps.setString(1, cond);       ps.executeUpdate();    }     catch(Exception e) {System.out.println(e);  }  }      public static void extraer_datos ()  {    try    {      int row = tmodel.getRowCount();      while(row > 0)      {        row--;        tmodel.removeRow(row);      }       //execute query      ResultSet rs = st.executeQuery("Select * from directorio_paciente");       //get metadata      ResultSetMetaData md = rs.getMetaData();      int colcount = md.getColumnCount();       Object[] data = new Object[colcount];      //extracting data       while (rs.next())      {        for (int i=1; i<=colcount; i++)        {          data[i-1] = rs.getString(i);        }        tmodel.addRow(data);      }    }    catch(Exception e) {System.out.println(e);  }  }   }   

Espero me puedan ayudar, porque ya estuvimos varias horas tratando de hacerlo y no pudimos :S

Les adjunto la Base de datos cuyo nombre en "odbc" es medi y también les adjunto el código que hicimos

Navegación

[0] Índice de Mensajes

Ir a la versión completa