Java - CONEXION A MySql lenta

 
Vista:

CONEXION A MySql lenta

Publicado por rocha (1 intervención) el 13/09/2011 07:33:51
Hola queridos compañeros hice una alplicacion donde genero mas de 1000 numero y a medida que los genero los guardo en una base de datos MysQL, el problema es que despues de 13 segundo me arroja error que no hay respuesta por parte del servidor.

este es el codigo que ingresa a la base de datos:


public void ingresarD(double aleatorioNumber, int numeroAleatorio) {


String sql = " insert into aleatorios(numeroAleatorio,variableAleatori) values (?,?)";

try {

PreparedStatement st = Conexion.ObtenerConexion().prepareStatement(sql);
st.setDouble(1, aleatorioNumber);
st.setInt(2, numeroAleatorio);
st.executeUpdate();
Conexion.ObtenerConexion().close();






} catch (SQLException ex) {
}


}

este es el codigo para conectarme:


public class Conexion {

private static String Driver; // variable donde se almacenara el motor de conexion
private static String URL;//Direccion donde se encuentra ubicad la Base de Datos
private static String user;//usuario
private static String pass;// contraseña
public static Connection cn=null;



/** metodo que nos permite realizar una conexion con culquiere bases de datos
* mySql, el metodo se define como estatico, para poderlo utilizar sin necesidad
* de instanciar a la clase
* @return
*/
public static Connection ObtenerConexion(){





setDriver("org.gjt.mm.mysql.Driver") ;//"com.mysql.jdbc.Driver";// driver mysql
setURL("jdbc:mysql://localhost:3306/simulacion");//empresa";//url de la base dd
setUser("root");
setPass("123456");

try{
Class.forName(getDriver());// se obbtibe la conexion con MysQL
cn=DriverManager.getConnection(getURL(),getUser(), getPass());
System.out.println("Conexion Ok");
}catch(Exception e){
System.out.println("Esta vaina no funciono");

}
return cn;

}

y este es el codigo que genera los numeros y los guarda:


public void CongruencialMixto() {




reiniciarBD();
String r = ""; // variable temporal donde se guardara los numeros aleatorios
double aleatorio=0.0;// variable donde se guardaran temporalmente cada aleatorio generado, se sobre escribe
int n = 0;// contador

vectorIntervalo = new int[5];// vector para realizar las pruebas de frecuencias

// se reinician en cero cada segmento, son 5 en cada para todas las pruebas
for(int i=0; i<vectorIntervalo.length;i++ ){
vectorIntervalo[i]=0;
}


periodo = m;




while (n < m) {
// formula
x = ((a * x) + c) % m;
n++;
aleatorio = x / m;


r = r +("X" + n + " = ((" + a + " x " + x + ") + " + c + ") mod " + m + "=" + x+" aleatorio "+aleatorio) + "\n";
setSumaAleatorio(+getSumaAleatorio() + aleatorio);
variableAleatoria= (int) ( 36 * aleatorio);


ingresarD(aleatorio,variableAleatoria);// parte donde se ingresa a la bd



// verifico los sectores para las pruebas de frecuencias
if (aleatorio < 0.2) {
vectorIntervalo[0]++;
}
if (aleatorio > 0.2 && aleatorio < 0.4) {
vectorIntervalo[1]++;
}

if (aleatorio > 0.4 && aleatorio < 0.6) {
vectorIntervalo[2]++;
}
if (aleatorio > 0.6 && aleatorio < 0.8) {
vectorIntervalo[3]++;
}
if (aleatorio > 0.8 && aleatorio < 1.0) {
vectorIntervalo[4]++;
}




}//fin del while
setRespuesta(r);
System.err.println(r);

}// fin del metodo



pero si quito la opcion de guardar en la base de datos, el programa responde en menos de un segundo generando 1000 numeros, alguna sugerencia?
De antemano mil gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder