public static List<Discussione> getDeltaDiscussioni(int idDiscussione, int idMessaggioDiscussione) throws DBException, SQLException { List<Discussione> list = new ArrayList<Discussione>(); Connection conn = null; try { conn = DBConnection.getDBConnection(); String query = "SELECT * FROM discussione " + "WHERE ID_Discussione = ? AND ID_Messaggio_Discussione > ? " + "ORDER BY ID_Messaggio_Discussione"; PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, idDiscussione); ps.setInt(2, idMessaggioDiscussione); ResultSet rs = ps.executeQuery(); Discussione d; while (rs.next()) { d = new Discussione(); d.setID_Discussione(rs.getInt("ID_Discussione")); d.setID_Messaggio_Discussione(rs.getInt("ID_Messaggio_Discussione")); d.setID_Membro_Mittente(rs.getInt("ID_Membro_Mittente")); d.setID_Membro_Destinatario(rs.getInt("ID_Membro_Destinatario")); d.setTimestamp(rs.getTimestamp("timestamp")); d.setTesto(rs.getString("testo") /*.replaceAll("(\r\n|\n|\r)", "<br/>")*/); boolean letta = rs.getInt("letta") == 1 ? true : false; d.setLetta(letta); list.add(d); } } finally { DBConnection.closeConnection(conn); } return list; }
public static List<Discussione> getDiscussioniFromIdMembro(int idMembro) throws DBException, SQLException { Connection conn = null; List<Discussione> list = new ArrayList<Discussione>(); try { conn = DBConnection.getDBConnection(); String query = "SELECT * FROM discussione " + "WHERE ID_Membro_Mittente = ? OR ID_Membro_Destinatario = ?"; PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, idMembro); ps.setInt(2, idMembro); ResultSet rs = ps.executeQuery(); Discussione d; while (rs.next()) { d = new Discussione(); d.setID_Discussione(rs.getInt("ID_Discussione")); d.setID_Messaggio_Discussione(rs.getInt("ID_Messaggio_Discussione")); d.setID_Membro_Mittente(rs.getInt("ID_Membro_Mittente")); d.setID_Membro_Destinatario(rs.getInt("ID_Membro_Destinatario")); d.setTimestamp(rs.getTimestamp("timestamp")); d.setTesto(rs.getString("testo")); boolean letta = rs.getInt("letta") == 1 ? true : false; d.setLetta(letta); list.add(d); } } finally { DBConnection.closeConnection(conn); } return list; }
public static Discussione addDiscussione(int idMittente, int idDestinatario, String testo) throws SQLException, InvalidOperationException, DBException { Connection conn = null; String query; PreparedStatement ps; ResultSet rs; Discussione discussione = null; try { conn = DBConnection.getDBConnection(); query = "SELECT ID_Discussione, MAX(ID_Messaggio_Discussione) as maximum FROM discussione " + "WHERE ID_Membro_Mittente = ? OR ID_Membro_Destinatario = ?"; ps = conn.prepareStatement(query); ps.setInt(1, idMittente); ps.setInt(2, idMittente); rs = ps.executeQuery(); int idDiscussione, idMessaggioDiscussione; if (!rs.next()) throw new InvalidOperationException("Errore select discussione"); idDiscussione = rs.getInt("ID_Discussione") == 0 ? 1 : rs.getInt("ID_Discussione"); idMessaggioDiscussione = rs.getInt("maximum") + 1; query = "INSERT INTO `discussione`(`ID_Discussione`, `ID_Messaggio_Discussione`, `ID_Membro_Mittente`, `ID_Membro_Destinatario`, `timestamp`, `testo`, `letta`) " + "VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, ?, ?)"; ps = conn.prepareStatement(query); ps.setInt(1, idDiscussione); ps.setInt(2, idMessaggioDiscussione); ps.setInt(3, idMittente); ps.setInt(4, idDestinatario); ps.setString(5, testo); ps.setInt(6, 0); if (ps.executeUpdate() != 1) throw new InvalidOperationException("Errore insert discussione"); query = "SELECT * FROM discussione " + "WHERE ID_Discussione = ? AND ID_Messaggio_Discussione = ?"; ps = conn.prepareStatement(query); ps.setInt(1, idDiscussione); ps.setInt(2, idMessaggioDiscussione); rs = ps.executeQuery(); rs.next(); discussione = new Discussione(); discussione.setID_Discussione(rs.getInt("ID_Discussione")); discussione.setID_Messaggio_Discussione(rs.getInt("ID_Messaggio_Discussione")); discussione.setID_Membro_Mittente(rs.getInt("ID_Membro_Mittente")); discussione.setID_Membro_Destinatario(rs.getInt("ID_Membro_Destinatario")); discussione.setTimestamp(rs.getTimestamp("timestamp")); discussione.setTesto(rs.getString("testo")); } finally { DBConnection.closeConnection(conn); } return discussione; }