Foro de elhacker.net

Programación => Java => Mensaje iniciado por: owen en 12 Febrero 2016, 05:01 am



Título: como pasar un dato a otra clase?
Publicado por: owen en 12 Febrero 2016, 05:01 am
Bueno primero quiero agradecer a todo el que me pueda ayudar con el problema que tengo, verán tengo una clase que tiene tres métodos uno es hacer conexión con MySql, el otro cierra dicha conexión y el ultimo que es donde tengo el problema que es el que realiza consultas y es que nose como hacer que me retorne un valor de la tabla de la base de datos.

este es el código que tengo:

Código:
package conexion;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class SQL {
    private static Connection Conexion;
   
    public void MySQLConnection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Conexion = DriverManager.getConnection("jdbc:mysql://localhost/base_de_datos","root","");
            System.out.println("Se ha iniciado la conexión con el servidor de forma exitosa");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(SQL.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(SQL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
   
    public void closeConnection() {
        try {
            Conexion.close();
            System.out.println("Se ha finalizado la conexión con el servidor");
        } catch (SQLException ex) {
            Logger.getLogger(SQL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
   
    public void getValues(String nombre) {
        try {
            String Query = "SELECT * FROM "+nombre;
            Statement st = Conexion.createStatement();
            java.sql.ResultSet resultSet;
            resultSet = st.executeQuery(Query);

            while (resultSet.next()) {
                System.out.println(
                         "Nombre: " + resultSet.getString("nombre") + " "
                        + "Direcion: " + resultSet.getString("direcion"));
               
            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Error en la adquisición de datos");
        }
    }

   
}

Para explicarme mejor necesito exatrar el valor que me arroje esto(nombre y dirección) y usarlo en otra clase:

Código:
while (resultSet.next()) {
                System.out.println(
                         "Nombre: " + resultSet.getString("nombre") + " "
                        + "Direcion: " + resultSet.getString("direcion"));
               
            }

espero me puedan ayudar en mis inicios de java, desde ya muchas gracias!!


Título: Re: como pasar un dato a otra clase?
Publicado por: 0xFer en 12 Febrero 2016, 15:05 pm
Conozco dos formas:
1. Crea un objeto de la clase que contiene los datos que vas a utilizar, en el lugar donde vayas a utilizar esos datos.

Por ejemplo, supongamos que tenemos una clase que calcula la suma de 2 números:

Código
  1. class Suma{
  2.    private int num1;
  3.    private int num2;
  4.    public Suma(int num1,int num2){
  5.        this.num1 = num1;
  6.        this.num2 = num2;  
  7.    }
  8.  
  9.    public int resultado(){
  10.        return num1 + num2;
  11.    }
  12. }

Ahora simplemente creamos un objeto de la clase suma:
Código
  1. Suma mySuma = new Suma(2,2); //2 + 2
  2. System.out.println(mySuma.resultado());//imprime 4

2. Haz que las variables que vayas a utilizar sean estáticos( usa la palabra reservada static), así no es necesario crear un objeto de la clase que contiene la variable, puedes acceder al valor de la variable poniendo NombreClase.NombreVariableEstática. al usar static en una variable haces que todas las instancias de una clase( los objetos ) tengan en mismo valor para esa variable, como si fuera una sola variable para todas las instancias.

Código
  1. class AlgunaClase{
  2.    public static int variable;
  3.  
  4. }

para acceder a la variable: AlgunaClase.variable


Título: Re: como pasar un dato a otra clase?
Publicado por: owen en 13 Febrero 2016, 03:55 am
Gracias amigo! me fue de mucha utilidad


Título: Re: como pasar un dato a otra clase?
Publicado por: 0xFer en 13 Febrero 2016, 17:15 pm
De nada  ::)

Bienvenido al foro  ;D