http://www.chuidiang.com/java/mysql/...Conexiones.php
lo entiendo todo perfectamente, pero no tengo claro como integrarlo con mi programa, un servidor de sockets que abre un hilo por cada conexión entrante y aparte otro hilo paralelo principal que hace como unas 30-50 consultas UPDATE cada 5 segs.
Este es el código:
Código PHP:
public class servidorES
{
// punto de entrada a nuestro programa
public static void main(String [] array)
{
//cargar el driver de mysql
try {
Class.forName("org.gjt.mm.mysql.Driver");
}
catch (Exception e) {
System.out.println("Error1: "+e);
e.printStackTrace();
}
//arranca el hilo principal
PnjIAES pnjia = new PnjIAES();
pnjia.start();
servidorES instancia = new servidorES(array);
instancia.arranca();
}
boolean arranca()
{
try
{
ServerSocket s = new ServerSocket(puerto);
depura("Esperando conexion...");
while(true) // bucle infinito ....
{
Socket entrante = s.accept();
peticionES pCliente = new peticionES(entrante);
pCliente.start();
}
}
catch(Exception e)
{
depura("Error en servidor\n" + e.toString());
}
return true;
}
}
class PnjIAES extends Thread
{
public PnjIAES(){
DEBUG = 2;
dormir=5000;
//inicializar variables
//....
}
public void run(){ //iniciar hilo
try{
conexion = DriverManager.getConnection (dbhost,dbuser, dbpass);
s = conexion.createStatement();
while(true){
//hacer consultas aqui, unas 30-50 UPDATE por cada 5 segundos
//dormir xx segundos
try{
sleep(dormir);
}catch(Exception e){
depura("exc:"+e.toString());
e.printStackTrace();
}
}
}catch(Exception e){
System.out.println("e2: "+e.toString());
e.printStackTrace();
}
}//run
}
class peticionES extends Thread
{
private Socket scliente = null;
peticionES(Socket ps)
{
scliente = ps;
}
public void run() // implementamos el metodo run
{
depura("Procesamos conexion");
// Establecemos la conexion con la base de datos.
Connection conexion = null;
try{
conexion = DriverManager.getConnection (dbhost,dbuser, dbpass);
}catch(Exception e){
depura(e.toString());
}
boolean conectado = true;
do{ //bucle principal de cada hilo
//varias consultas (de 1 a 5) de cualquier tipo (select,update) cada segundo
}while(conectado==true);
}
}
GRACIAS