URGENTE: Problema con ResultSet ayuda por favor

Hola, estoy teniendo problemas con un resultset en java. Lo que intento hacer es recuperar de una tabla de amistades, todos los amigos de un usuario, y mi intención es recorrer ese resultset de amigos e insertar para todos esos usuarios mensajes. La intención es crear un "foro". El código que utilizo para recuperar las amistades y recorrerlas es el siguiente:
public void inserta_msg ( String mensaje, int emisor, String fecha, String titulo) throws SQLException {
ResultSet amigo = sentencia.executeQuery("Select id_amigo from amigos where id_user = '"+emisor+"';");
while ( amigo.next() ) {
sentencia.executeUpdate("insert into mensajes (id_emisor, id_receptor, fecha, texto, titulo, estado) values ('"+emisor+"', '"+amigo.getInt("id_amigo")+"', '"+fecha+"', '"+mensaje+"', '"+titulo+"', '"+0+"');");
}
}
Sin embargo, lo que hace ahora es insertar el mensaje para el primer amigo y se queda colgada la aplicación, lo malo es que tampoco me retorna errores, y cuando accedo a la BBDD a verificar que ha insertado, me encuentro con que siempre me inserta el primer amigo, lo cual me hace pensar que el error esta en el resultset o a la hora de recorrerlo pero no veo por donde pueden ir los tiros.
Os estaría muy agradecido si me pudieseis exar una mano, ya que llevo un día con esto y me urge tenerlo.
Muchas gracias de antemano.

1 Respuesta

Respuesta
1
Ok, estas en momento de ofuscación, me meto en tu cabeza y estás con el rollo de "mecagoenlaputa, esto tenía que ser así, vaya movida, mañana entrega y estoy jodido, necesito ayuda" (perdón por los tacos).
La recomendaciones son varias:
-Averiguar donde se queda la aplicación colgada (en qué linea) y mirar el log. Si la aplicación se cuelga, hay log. Si no se cuelga, vete a la BD.
Yo haría lo siguiente, cogería un user (por ejemplo el 1), con dos amigos (por ejemplo, 2 y 3), y haría la prueba sencilla de ver si lo está cogiendo bien.
ResultSet amigo = sentencia.executeQuery("Select id_amigo from amigos where id_user = '"+emisor+"';");
SYSTEM.OUT.PRINTLN("11111111111");
while ( amigo.next() ) {
SYSTEM.OUT.PRINTLN("222222222222");
sentencia.executeUpdate("insert into mensajes (id_emisor, id_receptor, fecha, texto, titulo, estado) values ('"+emisor+"', '"+amigo.getInt("id_amigo")+"', '"+fecha+"', '"+mensaje+"', '"+titulo+"', '"+0+"');");
SYSTEM.OUT.PRINTLN("3333333333")}
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas