Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

AYUDA en conexion por favor

  • 2 Respuestas
  • 855 Vistas

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

Desconectado REMHINOB

  • *
  • Underc0der
  • Mensajes: 24
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Mayo 18, 2019, 09:53:32 am »
Hola me pueden ayudar por favor, tengo esta clase conexion

public class Conexion {
   
    public static Connection connection;

    private static final String HOST="192.168.0.122";
    private static final String DB="siscon";
    private static final String USER="root";
    private static final String PASS="";
       
    public static void Conexion(){
        connection=null;
        try{
            String url="jdbc:mysql://" + HOST + "/" + DB;
            Class.forName("com.mysql.jdbc.Driver");
            connection=(Connection) DriverManager.getConnection(url,USER,PASS);
            System.out.println("Conexion Abierta");
        }catch(SQLException e){
            System.out.println("SQLException " + e.getMessage());
        }catch(ClassNotFoundException e){
            System.out.println("Exception " + e.getMessage());
        }

    }
}

y una clase GestionDatos con el cual extraigo datos de mi BD y lo almaceno en una array.

package Clases;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author sniper
 */
public class GestionDatos {
    Eventos evento=new Eventos();
    PreparedStatement pst;
    ResultSet rs;
public String[] extraerDatos(String sql,int columnas){
            String[]datos=new String[columnas];
            try{
                pst=Conexion.connection.prepareStatement(sql);
                rs=pst.executeQuery(sql);
                if(rs.next()){
                    for(int x=0;x<datos.length;x++){
                        datos
  • =rs.getString(x+1);

                    }
                }
                return datos;
            }
            catch(SQLException e){
                   System.out.println(e.getMessage());
            }
            return null;
    }
}

cuando lo ejecuto me sale el error:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

QUE ESTOY HACIENDO MAL?? GRACIAS POR su respuesta
« Última modificación: Mayo 18, 2019, 10:26:08 am por Gabriela »

Desconectado rommel360

  • *
  • Underc0der
  • Mensajes: 37
  • Actividad:
    5%
  • Reputación 1
    • Ver Perfil
« Respuesta #1 en: Mayo 20, 2019, 02:38:33 pm »
Veo que el error eta en esta parte

Código: Java
  1.  String[]datos=new String[columnas];
  2.  
  3.  for(int x=0;x<datos.length;x++){
  4.                         datos
  5.  
  6.     =rs.getString(x+1);
  7.  
  8.  
  9.                     }
  10.  

lo que pasa es que te estas saliendo del arreglo, por ejemplo si colomnas vale 5 entonces tu arreglo datos mide 5

pero si tu consulta SQL solo trajo 3 valores. entonces se sale de la longitud ya que el ciclo FOR tiene que llegar hasta el 4 ( del 0 al son 5 elementos )
cuando en realidad solo tiene que llegar al 3 porq es el total de elementos que tiene tu consulta.

Y si en dado caso cuando datos mida 2 ahora te van a faltar elementos ya q no va arecorrer todos los datos de la consulta por eso mejor

usan while( resultado.next()) a sii no importa cuantos datos tnga solamente se va arecorrer los que deben de ser. ni mas ni menos

espero haberme explicado jijijijj

alguna recomendacion:

al ser sentencia preparada, algo que debe de llevar tu consulta es ? por cada valor que lleve por ejemplo

SELECT aPterno, aMaterno, Nombre FROM clientes WHERE idCliente = '0001' AND fecha > '2019-01-08';

Tendria que ir a si
SELECT aPterno, aMaterno, Nombre FROM clientes WHERE idCliente = ? AND fecha > ?;

//Luego tienes q
conexion.pst.setString( 1, '0001' );
conexion.pst.setString( 1, '2019-01-08' );

resultadio = conexion.pst.executeQuery();

usa mejor un While en vez del IF de todas manera si la consulta no trajo nada entonces no entra al While

while( valores.next() )
{

}

Desconectado rommel360

  • *
  • Underc0der
  • Mensajes: 37
  • Actividad:
    5%
  • Reputación 1
    • Ver Perfil
« Respuesta #2 en: Mayo 20, 2019, 02:58:57 pm »
también en vez de acceder al resultado por el numero de la columna puedes acceder por el nombre de la columna, tambien podrias acceder pormedio de un ArrayList<String[]> arreglo = new ArrayList<>(); y asii ya no te preocupas de definir le un tamaño y solamente con el metodo addElement vas agregando los valores

Código: Java
  1. while( valores.next() )
  2. {
  3.        arreglo.addElement(valores.getString( "IDReferencia" ))
  4.        areglo.addElement(valores.getString( "IDPaciente" ));
  5.       areglo.addElement( valores.getString( "IDUMedicaEnvia" ));
  6.                                                                                                          
  7. }
  8.  
  9.  


pero si es con el arreglo de String que difiniste solo tendría un cambio

Código: Java
  1. int x = 1;//no recuedo si las columnas de una tabla empiezan por 0 o desde el 1 jajajaja
  2. while(rs.next())
  3. {
  4.  datos[x-1]=rs.getString(x);
  5. //x-1 por q los arreglos empiezan desde el 0 a contar y el otro lado solo queda como x ya q tiene el 1 y es el primer campo de la tabla y a si tambien para que no se salga del tamaño del arrglo en caso de que si empiece por el 1 las columnas de una tabla entonces solo ponemos datos[x]
  6.  
  7. x++;
  8. }
  9.  

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 10711
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon
"ayuda con fruitywifi-karma" no puedo activar el modulo karma.

Iniciado por cristobal92

Respuestas: 4
Vistas: 3390
Último mensaje Agosto 02, 2016, 12:03:45 pm
por cristobal92
[JAVA] Ayuda Sockets en Java

Iniciado por FERNANDX

Respuestas: 1
Vistas: 2078
Último mensaje Abril 25, 2018, 08:49:50 pm
por Mortal_Poison
[Ayuda] Crear .zip o .rar de un "archivo"

Iniciado por Zentraedi

Respuestas: 5
Vistas: 3776
Último mensaje Marzo 03, 2017, 02:15:20 pm
por Zentraedi
Ayuda Para Hacking Para Juegos

Iniciado por NinjaWarrior

Respuestas: 0
Vistas: 1564
Último mensaje Marzo 06, 2019, 08:06:47 pm
por NinjaWarrior