예제 #1
0
 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;
 }
예제 #2
0
 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;
 }
예제 #3
0
  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;
  }