Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2013, 14:09
Avatar de francoBalsamo
francoBalsamo
 
Fecha de Ingreso: mayo-2013
Ubicación: San Jorge
Mensajes: 6
Antigüedad: 11 años
Puntos: 2
Espera en Conexiones remotas

Buenas tardes amigos; les escribo porque tengo un sistema hecho en JAVA que se conecta a una base de datos mySQL remota. Mi problema es el siguiente:

En consultas o ABMs hay una pequeña espera que creo yo debe ser algo normal tratándose de una conexión remota. El problema es que en ese lapso de espera no puedo hacer otra cosa más que esperar ya que el sistema se congela.

Mi pregunta es:

¿Existe alguna manera de que el sistema siga funcionando normalmente en ese lapso de espera?

Aquí les dejo el código para que vean que es lo que hice:

Clase Conexión:
Código PHP:
package gestor;

/**
 *
 * @author fjbalsamo
 */
public class Conexion {
    private static 
java.sql.Connection connection=null;
    private static 
String cxnString="jdbc:mysql://localhost:3306/dbName";    
    private static 
String password="**********";
    private static 
String user="user";
    private static 
com.mysql.jdbc.PreparedStatement pstmt;
    
    public static 
java.sql.Connection getConexion(){
        try{
            if(
connection==null){
                
//Registro el Driver
                
Class.forName("com.mysql.jdbc.Driver").newInstance();
                
//Conexion a la base de datos
                
connection=(java.sql.Connectionjava.sql.DriverManager.getConnection(cxnStringuserpassword);
                
            }
        }catch(
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException e1){
            
System.err.println(e1);
        }catch(
java.sql.SQLException e2){
            
System.err.println(e2);
        }catch(
Exception e3){
            
System.err.println(e3);
        }
        return 
connection;
    }
    
    public static 
com.mysql.jdbc.PreparedStatement getPreparedStatement(String sql){
        try{
            
pstmt=(com.mysql.jdbc.PreparedStatementConexion.getConexion().prepareStatement(sql);
        }catch(
java.sql.SQLException e1){
            
System.err.println(e1);
        }catch(
Exception e2){
            
System.err.println(e2);
        }
        return 
pstmt;
    }
    

Clase GestorCliente:

Código PHP:
public class GestorCliente {
    private static 
com.mysql.jdbc.PreparedStatement pstmt;
    private static 
java.sql.ResultSet rst;
    private static 
boolean ok=false;
    private static 
Cliente cliente;
    private static 
ArrayList<Clienteclientes;
    
    public static 
boolean addCliente(Cliente cli){
        try{
            
pstmt=Conexion.getPreparedStatement("string sql");

            
pstmt.setInt(1cli.getCampoInt());

            
pstmt.setString(2cli.getCampoString());
            
            
ok=(pstmt.executeUpdate()!=0);

        }catch(
Exception e){
            
ok=false;
            
System.err.println(e);
        }
        return 
ok;
    }

public static 
ArrayList<ClientegetClientesByString(String str){
        
clientes=new ArrayList<Cliente>();
        try{
            
pstmt=Conexion.getPreparedStatement("SELECT query");
            
pstmt.setString(1str+"%");
            
rst=pstmt.executeQuery();
            while(
rst.next()){
                
cliente=new Cliente();
                
cliente.setNombre(rst.getString("nombreCliente"));
                
clientes.add(cliente);                     
            }
        }catch(
Exception e){            
            
System.err.println(e);
        }
        return 
clientes;
    }