¿Cómo pasar el valor de una variable del método de una clase, al método de otra clase?

publicado por: Anonymous

En principio sé que puede resultar fácil, pero me he atascado y no avanzo.

Mi intención es pasar el valor de cada una de las posiciones de un array en el método 1 de la Clase A, al método 2 de la clase B, para insertarlos directamente en una consulta SQL.

Gracias de antemano.

P.D: Pongo los fragmentos de código relacionados, por si sirve de algo.

Lo que pretendo es coger el valor de cadenaSplit (según la posición)…

public class GestionEmpleados 
{
    public void cargarDatos(String id, String dni, String nombre, String apellido1, String apellido2, boolean disponible, int diasvacaciones, String cargo) 
    {
        String cadena;
        Empleado registro;
        String[] cadenaSplit = null;
        int n = 0;
        BufferedReader b = null;
        try 
        {
            FileReader f = new FileReader(GestionDB.ruta);
            b = new BufferedReader(f);
            while ((cadena = b.readLine()) != null) 
            {
                cadenaSplit = cadena.split("@");
                boolean disArray = Boolean.valueOf(cadenaSplit[5]);
                int diaArray = Integer.parseInt(cadenaSplit[6]);
                registro = new Empleado(cadenaSplit[0], cadenaSplit[1], cadenaSplit[2], cadenaSplit[3], cadenaSplit[4], disArray, diaArray, cadenaSplit[7]);
                p.escribirnl(registro);
                nuevoEmpleado(registro, n);
                n++;
                id = cadenaSplit[0];
                dni = cadenaSplit[1];
                nombre = cadenaSplit[2];
                apellido1 =  cadenaSplit[3];
                apellido2 = cadenaSplit[4];
                disponible = disArray;
                diasvacaciones = diaArray;
                cargo = cadenaSplit[7];
            }
            b.close();
        } catch (FileNotFoundException e) 
        {
        } catch (IOException e) 
        {
        } 
    }
}

E ir asignándoselo a la variable correspondiente en este otro método, para añadirlo a la sentencia SQL:

public class GestionDB
{
    public void archivoToDb()
    {
        //Del archivo a la BBDD
        String id, dni, nombre, apellido1, apellido2, cargo;
        boolean disponible;
        int diasVacaciones;

        try
        {
            Connection c=DriverManager.getConnection(rutaConexion);
            Statement stmt = null;
            stmt = c.createStatement();
            stmt.executeUpdate("INSERT INTO EMPLEADOS VALUES ('"+id+"','"+dni+"','"+nombre+"','"+apellido1+"','"+apellido2+"','"+disponible+"','"+diasVacaciones+"','"+cargo+";");
            System.out.println("Datos introducidos.");
        }catch (Exception e)
        {
        }
    }
}

solución

Es facil, lo que tienes que hacer es enviar los datos a la clase,
archivoToDb()

De esta manera:

archivoToDb(String id, String dni, String nombre, String apellido1, String apellido2, boolean disponible, int diasvacaciones, String cargo){

y ahora en tu código enviarselo así:

public class GestionEmpleados {
public void cargarDatos(String id, String dni, String nombre, String apellido1, String apellido2, boolean disponible, int diasvacaciones, String cargo) 
{
    String cadena;
    Empleado registro;
    String[] cadenaSplit = null;
    int n = 0;
    BufferedReader b = null;
    try 
    {
        FileReader f = new FileReader(GestionDB.ruta);
        b = new BufferedReader(f);
        while ((cadena = b.readLine()) != null) 
        {
            cadenaSplit = cadena.split("@");
            boolean disArray = Boolean.valueOf(cadenaSplit[5]);
            int diaArray = Integer.parseInt(cadenaSplit[6]);
            registro = new Empleado(cadenaSplit[0], cadenaSplit[1], cadenaSplit[2], cadenaSplit[3], cadenaSplit[4], disArray, diaArray, cadenaSplit[7]);
            p.escribirnl(registro);
            nuevoEmpleado(registro, n);
            n++;
            id = cadenaSplit[0];
            dni = cadenaSplit[1];
            nombre = cadenaSplit[2];
            apellido1 =  cadenaSplit[3];
            apellido2 = cadenaSplit[4];
            disponible = disArray;
            diasvacaciones = diaArray;
            cargo = cadenaSplit[7];
            //Aqui realizas la llamada al metodo archivoToBD(Con sus parametros)

        }
        b.close();
    } catch (FileNotFoundException e) 
    {
    } catch (IOException e) 
    {
    } 
}

}

Por otra parte recuerda los conceptos de las clases de java, si quieres acceder a un metodo de una clase que es de utilidad como tu archivoToBD() tienes que ponerla del tipo static. y quedaría asi:

 public static void archivoToDb(String id, String dni, String nombre, String apellido1, String apellido2, boolean disponible, int diasvacaciones, String cargo) {

Espero que te sirva, Saludos.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *