Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

Affichage.java

Blame
  • ThreadDAO.java 4.58 KiB
    package dao;
    
    import dto.Message;
    import dto.User;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.List;
    
    public class ThreadDAO {
        private Connection con;
    
        public ThreadDAO(){
            this.con = new BDConnection().getConnection();
        }
    
        public List<Message> getAllMessages(){
            ArrayList<Message> messages = new ArrayList<>();
            try{
                Statement stmt = this.con.createStatement();
                ResultSet rs = stmt.executeQuery("SELECT * FROM msg;");
    
                while(rs.next()){
                    int msgId = rs.getInt(1);
                    int userIdMsg = rs.getInt(2);
                    int threadId = rs.getInt(3);
                    String msg = rs.getString(4);
    
                    messages.add(new Message(msgId,userIdMsg,threadId,msg));
                }
            } catch (SQLException sqle) {
                sqle.getStackTrace();
            }
    
            return messages;
        }
    
        public Thread getThreadById(int threadID) throws SQLException {
            Thread thread = new Thread();
            PreparedStatement ps = this.con.prepareStatement("SELECT threadID, threadName FROM thread WHERE threadID = ?");
            try {
                ps.setInt(1, threadID);
                ResultSet rs = ps.executeQuery();
                if(rs.next()){
                    thread.setThreadID(rs.getInt(1));
                    thread.setName(rs.getString(2));
                }
            }
            catch (SQLException sqle) {
                sqle.getStackTrace();
            }
            return thread;
        }
    
        public List<Message> getAllMessagesFromThread(int threadId){
            ArrayList<Message> messages = new ArrayList<>();
            try{
                PreparedStatement ps = this.con.prepareStatement("SELECT msg FROM msg WHERE thread_id=?;");
                ps.setInt(1, threadId);
                ResultSet rs = ps.executeQuery();
    
                while(rs.next()){
                    int msgId = rs.getInt(1);
                    int userIdMsg = rs.getInt(2);
                    String msg = rs.getString(3);
    
                    messages.add(new Message(msgId,userIdMsg,threadId,msg));
                }
            } catch (SQLException sqle) {
                sqle.getStackTrace();
            }
    
            return messages;
        }
    
        public List<User> getFollowersOfThread(int threadId) throws SQLException{
            ArrayList<User> followers = new ArrayList<>();
            try {
                PreparedStatement ps = this.con.prepareStatement("""
                SELECT u.userID, u.username, u.password FROM userAccount AS u
                INNER JOIN follow AS f ON f.userID=u.userID
                WHERE f.threadID_follow = ?
                """);
                ps.setInt(1, threadId);
                ResultSet rs = ps.executeQuery();
                while(rs.next()){
                    int userId = rs.getInt(1);
                    String username = rs.getString(2);
                    String password = rs.getString(3);
    
                    followers.add(new User(userId, username, password));
                }
            } catch (SQLException sqle) {
                sqle.getStackTrace();
            }
            return followers;
        }
    
        // Créer un thread
        public void createThread(User user, String threadName) throws SQLException {
            PreparedStatement ps = this.con.prepareStatement("INSERT INTO thread (userID_thread, threadName) VALUES(?, ?)");
            try {
                ps.setString(1, ""+user.getId());
                ps.setString(2, threadName);
            }
            catch (SQLException sqle) {
                sqle.getStackTrace();
            }
        }
    
    
    //
    //    public String getUserById(int id){
    //        StringBuilder txt = new StringBuilder();
    //        try{
    //            PreparedStatement stmt = this.con.prepareStatement("SELECT * FROM userAccount WHERE id=?");
    //            stmt.setInt(1, id);
    //            ResultSet rs = stmt.executeQuery();
    //
    //            if(rs.next()){
    //                int userId = rs.getInt(1);
    //                String username = rs.getString(2);
    //                String pwd = rs.getString(3);
    //
    //                txt.append("Id : ").append(userId).append(" Username : ").append(username).append(" Password : ").append(pwd).append('\n');
    //            }
    //        } catch (SQLException sqle) {
    //            sqle.getStackTrace();
    //        }
    //
    //        return txt.toString();
    //    }
    //
    //    public void addUser(User nUser){
    //        try{
    //            PreparedStatement stmt = this.con.prepareStatement("INSERT INTO userAccount VALUES (?,?,?)");
    //            stmt.setInt(1, nUser.getID());
    //            stmt.setString(2, nUser.getUserName());
    //            stmt.setString(3, nUser.getPwd());
    //
    //            stmt.executeUpdate();
    //
    //        } catch (SQLException sqle) {
    //            sqle.getStackTrace();
    //        }
    //    }
    }