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.Connection) java.sql.DriverManager.getConnection(cxnString, user, password);
}
}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.PreparedStatement) Conexion.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<Cliente> clientes;
public static boolean addCliente(Cliente cli){
try{
pstmt=Conexion.getPreparedStatement("string sql");
pstmt.setInt(1, cli.getCampoInt());
pstmt.setString(2, cli.getCampoString());
ok=(pstmt.executeUpdate()!=0);
}catch(Exception e){
ok=false;
System.err.println(e);
}
return ok;
}
public static ArrayList<Cliente> getClientesByString(String str){
clientes=new ArrayList<Cliente>();
try{
pstmt=Conexion.getPreparedStatement("SELECT query");
pstmt.setString(1, str+"%");
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;
}
}