package com.andreiolar.abms.server; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.andreiolar.abms.client.rpc.DBGetMessagesForConversation; import com.andreiolar.abms.shared.Message; import com.google.gwt.user.server.rpc.RemoteServiceServlet; public class DBGetMessagesForConversationImpl extends RemoteServiceServlet implements DBGetMessagesForConversation { private static final long serialVersionUID = -1846410693714734065L; @Override public List<Message> getAllMessagesForConversation(int conversationId) throws Exception { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; List<Message> messages = new ArrayList<Message>(); try { conn = MyConnection.getConnection(); try { String q = "select * from conversation_reply where conv_id_fk=? order by id"; stmt = conn.prepareStatement(q); stmt.setInt(1, conversationId); rs = stmt.executeQuery(); int i = 1; while (rs.next()) { String reply = rs.getString("reply"); String from = rs.getString("username"); String date = rs.getString("date"); Message message = new Message(i, reply, from, date); messages.add(message); i++; } } catch (Exception ex) { ex.printStackTrace(); } finally { rs.close(); stmt.close(); } } catch (Exception ex) { ex.printStackTrace(); } finally { conn.close(); } if (messages.isEmpty()) { throw new Exception("Sorry! We were unable to retrieve messages for this conversation. Please try again!"); } return messages; } }