Foros del Web » Programación para mayores de 30 ;) » Java »

Introducir un contador en un servlet

Estas en el tema de Introducir un contador en un servlet en el foro de Java en Foros del Web. Hola, tengo un pequeño problema a la hora de introducir un contador en un servlet. El código de mi método doGet es el siguiente: public ...
  #1 (permalink)  
Antiguo 15/06/2009, 10:23
 
Fecha de Ingreso: julio-2008
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Introducir un contador en un servlet

Hola,

tengo un pequeño problema a la hora de introducir un contador en un servlet. El código de mi método doGet es el siguiente:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{

//Se mete todo en un try, por los posibles errores de MySQL
try
{

//Se registra el driver de MySQL
Class.forName("org.gjt.mm.mysql.Driver");
response.setContentType("text/html");
PrintWriter writer = response.getWriter();

//Se conecta a la base de datos
Connection conexion1 = DriverManager.getConnection("jdbc:mysql://localhost/paloma", "root", "contraseña");

//Se crea un Statement para llevar a cabo la consulta
Statement st1 = conexion1.createStatement();

ResultSet rs = st1.executeQuery("select * from tabla");
rs.last();
int m = rs.getRow();
rs.first();
int k = 1;

ResultSet rs1 = st1.executeQuery("select max(tiempo) as t from tabla group by uid order by t desc;");

//Obtenemos el número de filas del resultado de la consulta,
//que será igual al número de tarjetas RFID leídas.
rs1.last();
int n = rs1.getRow();

//Nos colocamos en la primera fila
rs1.first();
//Creamos un contador para controlar el número de veces que se repite el bucle
int i = 1;
//Se ejecuta el bucle mientras haya filas

LecturaBD lectura = new LecturaBD();
lectura.generaDocumentoXML();

while (i <= n) {

tiempo = rs1.getString(1);

//Se crea un nuevo Statement para llevar a cabo la nueva consulta
Statement st2 = conexion1.createStatement();

//Se obtienen de la tabla dinámica los datos buscados
ResultSet rs2 = st2.executeQuery("select * from tabla where tiempo='" + tiempo + "';");

//Creamos otro contador para controlar el número de veces que se repite este otro bucle
int j = 1;

while (rs2.next())
{


//Se compara el tiempo de la pda con la que se ha realizado la lectura
//con las que hay almacenadas en la base de datos rfid
if (tiempo.equals(rs2.getString(8)))
{

id = k;
//Se obtienen los valores buscados
uid = rs2.getString(7);
pda_mac = rs2.getString(1);
id_dispositivo = rs2.getInt(5);
id_sensor = rs2.getInt(6);
pr = rs2.getDouble(4);
posX = rs2.getInt(2);
posY = rs2.getInt(3);

//Se incrementa el segundo contador
j++;

Datos dato = new Datos(id, uid, pda_mac, id_dispositivo, id_sensor, pr, posX, posY, tiempo);
lectura.generarDocumentoXMLDato(dato);

}

}

//Se incrementa el primer contador
i++;
//Se cierra el ResultSet rs2
rs2.close();
//Avanzamos a la siguiente fila de la tabla
rs1.next();

}

//Se cierra el ResultSet rs1
rs1.close();
//Se cierra la conexión con la base de datos
conexion1.close();

String textoXML = lectura.obtenerTextoXML();
lectura.guardarDocumentoXML(textoXML);
writer.println(textoXML);

}
catch (Exception e)
{

//Capturamos los errores, si los hubiera
e.printStackTrace();

}

}


Mi objetivo es que id sea igual a un número entre 1 y k (que es el número total de filas), por lo que supongo que debería crear un bucle para lograr esto. El problema es que no sé dónde ponerlo, pues he hecho diversas pruebas y en ningún caso funciona correctamente. ¿Alguien podría echarme una manita?

Muchas gracias y un saludo,


Paloma
  #2 (permalink)  
Antiguo 15/06/2009, 11:38
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: Introducir un contador en un servlet

no entendi el problema, lo puedes explicar de nuevo
  #3 (permalink)  
Antiguo 18/06/2009, 10:08
 
Fecha de Ingreso: julio-2008
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Introducir un contador en un servlet

Hola,

muchas gracias por vuestra ayuda, pero ya lo he resuelto. Es que me estaba liando intentando introducir otro bucle. Al final simplemente he creado un nuevo contador que simplemente se incrementa en cada paso por uno de los bucles que ya tenía.

Un saludo,

Paloma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:18.