Hackathon JAVA
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Hackathon JAVA



  1. #1
    leopold2276

    Hackathon JAVA


    ------

    Bonjour,

    J'essaye de créer un bouton qui permet d’exécuter une requête SQL automatiquement qui me permet d'inserer une nouvelle ligne dans la table Participation mais je n'y arrive pas, donc pouvez vous m'aider à résoudre cette solution ?

    Fichier DAOHackathon.java
    Code:
    package fr.siocoliniere.dal.jdbc;
    
    import fr.siocoliniere.bo.Hackathon;
    import fr.siocoliniere.bo.Member;
    import fr.siocoliniere.dal.DALException;
    import fr.siocoliniere.dal.DAO;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Classe DAOHackathon
     * Implémente la classe abstraite DAO
     * BD : Table Hackathon
     */
    public class DAOHackathon extends DAO<Hackathon> {
    
        /**
         * PATTERN SINGLETON : contraint l'instanciation d'une UNIQUE instance de classe
         */
        private static DAOHackathon instanceDAOHackathon;
        private Hackathon obj;
    
        /**
         * Pattern Singleton
         * @return DAOHackathon
         */
        public static synchronized DAOHackathon getInstance() {
            if (instanceDAOHackathon == null) {
                instanceDAOHackathon = new DAOHackathon();
            }
            return instanceDAOHackathon;
        }
    
        /**
         * REQUETES
         */
        private static final String sqlSelectIdByName= "select hackathon.id from hackathon where hackathon.name = ?";
        private static final String sqlSelectAll = "select hackathon.id, hackathon.name, hackathon.topic, hackathon.description from hackathon";
        private static final String sqlSelectOneById = "select hackathon.id, hackathon.name, hackathon.topic, hackathon.description from hackathon where hackathon.id = ?";
        private static final String sqlUpdateOne = "update hackathon set name = ?, topic = ?, description = ? where id = ?";
        private static  final String sqlInsertOne = "insert into hackathon(name,topic, description) values (?,?,?)";
        private static final String sqlInsertJuryMember = "insert into participation(hackathonid,memberid,roleid) values (?,?,1)";
        private static final String sqlDeleteAllJuryMember = "delete from participation where hackathonid = ? and roleid = 1";
        private static final String sqlInsertMember = "insert into member(firstname, lastname, mail,telephone,portfolio,motdepasse) values (?,?,?,?,?,?)";
        private static final String sqlInsertJuryRole = "insert into participation(hackathonid,memberid,roleid) values (?,(select MAX(id) from member),1)";
    
        /**
         * Permet de supprimer la composition du jury du hackathon
         * @param hackid : id du hackathon
         * @throws DALException
         */
        public void deleteAllParticipationJuryOfHackathon(int hackid) throws DALException {
            try {
                Connection cnx = JdbcTools.getConnection();
                PreparedStatement rqt = cnx.prepareStatement(sqlDeleteAllJuryMember);
                rqt.setInt(1, hackid);
                rqt.executeUpdate();
                rqt.close();
            } catch (SQLException e) {
                throw new DALException(e.getMessage(),e);
            }
        }
    
    
    
        /**
         * Permet de récupérer l'id d'un hackathon connaissant le nom (contrainte d'unicité sur le nom)
         * @param name : nom du hackathon recherché
         * @return id du hackathon
         * @throws DALException
         */
        public Integer getIdByName(String name) throws DALException {
    
            Integer hackid = null;
            try {
                Connection cnx = JdbcTools.getConnection();
                PreparedStatement rqt = cnx.prepareStatement(sqlSelectIdByName);
                rqt.setString(1,name);
                ResultSet rs = rqt.executeQuery();
                while (rs.next()) {
                    //instanciation du hackathon
                    hackid=rs.getInt("id");
                }
                rqt.close();
    
            } catch (SQLException e) {
                //Exception personnalisée
                throw new DALException(e.getMessage(),e);
            }
            return hackid ;
        }
    
    
        /**
         * Permet de récupérer un hackathon à partir de son id
         * @param id du hackathon
         * @return le hackathon dont l'id est transmis en paramètre
         * @throws DALException
         */
        @Override
        public Hackathon getOneById(int id) throws DALException {
            Hackathon  hackat = null;
    
            List<Member> memberList;
            try {
                Connection cnx = JdbcTools.getConnection();
                PreparedStatement rqt = cnx.prepareStatement(sqlSelectOneById);
                rqt.setInt(1, id);
    
                ResultSet rs = rqt.executeQuery();
    
                while (rs.next()) {
                    hackat = new Hackathon(rs.getInt("id"),rs.getString("name"),rs.getString("topic"), rs.getString("description"));
    
                    //récupération des membres par appel au DAO gérant les membres
                    memberList = DAOMember.getInstance().getAllJuryByIdHackathon(rs.getInt("id"));
                    hackat.setJuryMembers(memberList);
                }
                rqt.close();
    
            } catch (SQLException e) {
                //Exception personnalisée
                throw new DALException(e.getMessage(),e);
            }
            return hackat;
        }
    
    
    
    
    
        /**
         * Permet de mettre à jour la composition du jury du hackathon
         * @param hackid : hackathon auquel le jury participe
         * @throws DALException
         */
        public void saveParticipationRoleJury(int hackid, Member oneJury) throws DALException {
            try {
                Connection cnx = JdbcTools.getConnection();
                PreparedStatement rqt = cnx.prepareStatement(sqlInsertJuryMember);
                rqt.setInt(1, hackid);
                rqt.setInt(2, oneJury.getId());
                rqt.executeUpdate();
                rqt.close();
    
            } catch (SQLException e) {
                throw new DALException(e.getMessage(),e);
            }
        }
    
        /**
         * Permet de mettre à jour la composition du jury du hackathon
         * @param hackid : hackathon auquel le jury participe
         * @param member
         * @throws DALException
         */
        public void saveParticipationRoleJury2(int hackid, Member member) throws DALException {
            try {
                Connection cnx = JdbcTools.getConnection();
                PreparedStatement rqt = cnx.prepareStatement(sqlInsertJuryRole);
                rqt.setInt(1, hackid);
                rqt.executeUpdate();
                rqt.close();
    
            } catch (SQLException e) {
                throw new DALException(e.getMessage(),e);
            }
        }
    
    
        /**
         * Permet de mettre à jour uniquement les settings du hackathon dans la base de données
         * @param obj : hackathon à mettre à jour
         * @throws DALException
         */
        public void updateSettings(Hackathon obj) throws DALException {
            try {
                Connection cnx = JdbcTools.getConnection();
    
                PreparedStatement rqt = cnx.prepareStatement(sqlUpdateOne);
                rqt.setString(1,obj.getName());
                rqt.setString(2, obj.getTopic());
                rqt.setString(3, obj.getDescription());
                rqt.setInt(4, obj.getId());
                rqt.executeUpdate();
                rqt.close();
    
            } catch (SQLException e) {
                throw new DALException(e.getMessage(),e);
            }
        }
    
        public void saveJury(Hackathon obj) throws DALException {
            try {
                Connection cnx = JdbcTools.getConnection();
                PreparedStatement rqt = cnx.prepareStatement(sqlInsertMember);
                rqt.setString(1,obj.getFirstName());
                rqt.setString(2,obj.getLastname());
                rqt.setString(3,obj.getMail());
                rqt.setString(4,obj.getTelephone());
                rqt.setString(5,obj.getPortfolio());
                rqt.setString(6, String.valueOf(obj.getPassword()));
                rqt.executeUpdate();
                rqt.close();
    
                //mise à jour de l'id du hackathon nouvellement créé - le champ name est UNIQUE
    
            } catch (SQLException e) {
                //Exception personnalisée
                throw new DALException(e.getMessage(),e);
            }
        }
    
    }



    HackathonController.java
    Code:
    package fr.siocoliniere.bll;
    
    import fr.siocoliniere.bo.Hackathon;
    import fr.siocoliniere.bo.Member;
    import fr.siocoliniere.dal.DALException;
    import fr.siocoliniere.dal.jdbc.DAOHackathon;
    
    import java.util.List;
    
    public class HackathonController {
    
        private List<Hackathon> hackathons;
    
        /**
         * PATTERN SINGLETON : contraint l'instanciation d'une UNIQUE instance de classe
         */
        private static HackathonController instanceCtrl;
    
        /**
         * Pattern Singleton
         * @return HackathonController
         */
        public static synchronized HackathonController getInstance(){
            if(instanceCtrl == null){
                instanceCtrl = new HackathonController();
            }
            return instanceCtrl;
        }
    
        /**
         * Constructeur
         * Chargement de la liste des hackathons
         * En private : pattern Singleton
         */
        private HackathonController() {
    
            try {
                this.hackathons = DAOHackathon.getInstance().getAll();
            } catch (DALException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * Permet de récupérer l'ensemble des hackathons
         * @return la liste des hackathons
         */
        public List<Hackathon> getAll(){
            return hackathons;
        }
    
        /**
         * work in progress
         */
        public List<Member> getPotentialJury() {
            return MemberController.getInstance().getAllByRoleJury();
        }
    
        /**
         * Permet de sauvegarder les settings d'un hackathon
         * @param hackathonManaged
         * @param name nom du hacakthon
         * @param topic topic du hackathon
         * @param description description du hackathon
         */
        public void saveHackathonStandalone(Hackathon hackathonManaged, String name, String topic, String description) {
    
            if (hackathonManaged != null) {
                // MAJ hackathon existant
                hackathonManaged.setName(name);
                hackathonManaged.setTopic(topic);
                hackathonManaged.setDescription(description);
                //persistance : Update
                try {
                    DAOHackathon.getInstance().updateSettings(hackathonManaged);
                } catch (DALException e) {
                    e.printStackTrace();
                }
            } else {
                // Nouvel hackathon
                hackathonManaged = new Hackathon(name, topic, description);
                //persistance : Insert
                try {
                    DAOHackathon.getInstance().saveHackathon(hackathonManaged);
                } catch (DALException e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * Permet de sauvegarder les settings d'un hackathon
         * @param hackathonJury
         * @param firstname
         * @param lastname
         * @param mail
         * @param telephone
         * @param portfolio
         * @param password
         *
         */
        public void saveJuryStandalone(Hackathon hackathonJury, String firstname, String lastname, String mail, String telephone, String portfolio, char[] password) {
    
            if (hackathonJury != null) {
                // MAJ hackathon existant
                hackathonJury.setFirstname(firstname);
                hackathonJury.setLastname(lastname);
                hackathonJury.setMail(mail);
                hackathonJury.setTelephone(telephone);
                hackathonJury.setPortfolio(portfolio);
                hackathonJury.setPassword(password);
                //persistance : UpdateString firstname
                try {
                    DAOHackathon.getInstance().updateSettings(hackathonJury);
                } catch (DALException e) {
                    e.printStackTrace();
                }
            } else {
                // Nouveeau Jury
                hackathonJury = new Hackathon(firstname, lastname, mail,telephone,portfolio,password);
                //persistance : Insert
                try {
                    DAOHackathon.getInstance().saveJury(hackathonJury);
                } catch (DALException e) {
                    e.printStackTrace();
                }
            }
        }
        
    
        /**
         * Permet de persister l'ensemble des membres jouant le rôle de jury du hackathon
         * @param hackathonManaged : hackathon
         * @param juries : liste de membres
         */
        public void saveParticipationJuryByIdHackathon(Hackathon hackathonManaged, List<Member> juries) {
    
            // maj objet
            hackathonManaged.clearJuryMember();
            hackathonManaged.setJuryMembers(juries);
    
            //persistance
            try {
                //suppression des participations de membres en tant que jurys stockées en BDD
                DAOHackathon.getInstance().deleteAllParticipationJuryOfHackathon(hackathonManaged.getId());
    
                // insertion des nouveaux jurys
                for (Member member :juries) {
                    DAOHackathon.getInstance().saveParticipationRoleJury(hackathonManaged.getId(),member);
                }
    
            } catch (DALException e) {
                e.printStackTrace();
            }
        }
    
    //    public void saveParticipationJuryByIdHackathon2(Hackathon hackathonManaged) {
    ////        DAOHackathon.getInstance().saveParticipationRoleJury2(hackathonManaged.getId());
    //    }
    
    
    }




    HackathonParticipationJuryForm .java
    Code:
    /*
     * Created by JFormDesigner on Tue Nov 15 14:29:30 CET 2022
     */
    
    package fr.siocoliniere.view;
    import fr.siocoliniere.bll.HackathonController;
    import fr.siocoliniere.bo.Hackathon;
    import fr.siocoliniere.bo.Member;
    import fr.siocoliniere.dal.DALException;
    
    import java.awt.*;
    import java.awt.event.*;
    import java.util.ArrayList;
    import java.util.List;
    import javax.swing.*;
    import javax.swing.border.*;
    
    /**
     * @author unknown
     */
    public class HackathonParticipationJuryForm extends JDialog {
    
        private Hackathon hackathonJury;
        public HackathonParticipationJuryForm() {
    
    
    
            setModal(true);
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            setPreferredSize(new Dimension(500, 500));
    
            setTitle("Hackat'Orga : Jury ");
            initComponents();
        }
    
        private void yesButtonActionPerformed(ActionEvent e) throws DALException {
    //        HackathonController.getInstance().saveParticipationJuryByIdHackathon2(hackathonJury);
            this.dispose();
        }
    }

    -----

  2. #2
    vgondr98

    Re : Hackathon JAVA

    Bonjour, j'ai déjà créer des boutons avec swing en utilisant javax.swing.JButton;
    Code:
    JFrame frame = new JFrame();
    Dimension screenSize 	= Toolkit.getDefaultToolkit().getScreenSize();
    Insets scnMax 			= Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration());
    int taskBarSize 		= scnMax.bottom;
    		
    frame.setSize(screenSize.width, screenSize.height - taskBarSize);
    frame.setVisible(true);
    
    JPanel panel = new JPanel();
    var lsButton = this.AjouterButtonSimpleLS(frame, map, runs, null);
    panel.add(lsButton);
    frame.add(panel);
    
    public JButton AjouterButtonSimpleLS(JFrame frame, Map<String, JComponent> map, Map<String, List<String>> runs, TypeSecteur typeSecteur) {
    var quitButton = new JButton("Visualiser le contenu du dossier work");
    
            quitButton.addActionListener((ActionEvent event) -> {
                
            	this.retirerPlusieursElements(map, quitButton);
            	
            	try {
    				this.VisualiserCommandeDF(frame, map, TypeCommande.ls, null, null, 0, runs, typeSecteur);
    			} catch (SftpException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
            	
            });
            map.put("Visualiser le contenu du dossier work",quitButton);
    return quitButton;
    Cela marche bien.

    Tu utilises peut-être un autre objet que JButton mais je ne comprends pas ta fonction yesButtonActionPerformed, elle semble appeler nulle part ?
    Dernière modification par vgondr98 ; 22/11/2022 à 15h59.

  3. #3
    pm42

    Re : Hackathon JAVA

    Créer un bouton est effectivement la base. Le reste du code d'accès à la base ne sert à rien ici, il ne donne pas d'information pertinente.

    P.S : 3 fils créés, jamais revenu sur aucun d'entre eux sauf erreur de ma part donc on va voir.

  4. #4
    leopold2276

    Re : Hackathon JAVA

    La fonction yesButtonActionPerformed apparait automatiquement losque qu'on créer un bouton depuis le fichier jfd JFormeDesigner

  5. A voir en vidéo sur Futura
  6. #5
    vgondr98

    Re : Hackathon JAVA

    Il faut que tu précises ce que tu n'arrive pas à faire parce que je ne sait pas où tu coinces exactement.
    Est-ce que tu n'arrives pas à créer le bouton ?
    Est-ce que le bouton est créé mais la fonction yesButtonActionPerformed pas attaché au bouton ?
    etc

  7. #6
    leopold2276

    Re : Hackathon JAVA

    Le bouton a deja été créer, la fonction yesButtonActionPerformed est attaché au button mais j'ai besoin que ce button exécute cette requete SQL (insert into participation(hackathonid,memb erid,roleid) values (?,(select MAX(id) from member),1)) à chaque fois que j’appuierai.

  8. #7
    vgondr98

    Re : Hackathon JAVA

    Code:
    private void yesButtonActionPerformed(ActionEvent e) throws DALException {
    //        HackathonController.getInstance().saveParticipationJuryByIdHackathon2(hackathonJury);
            this.dispose();
        }
    
    //    public void saveParticipationJuryByIdHackathon2(Hackathon hackathonManaged) {
    ////        DAOHackathon.getInstance().saveParticipationRoleJury2(hackathonManaged.getId());
    //    }
    Dans le code posté, tu as commenté les fonctions dont tu as besoin.

  9. #8
    umfred

    Re : Hackathon JAVA

    comme le dit vgondr98, la fonction qui fait ça est saveParticipationRoleJury2 qui a besoin de 2 paramètres hackid et member, donc il faut les récupérer aussi à un moment (depuis des infos de ta form sûrement)

Discussions similaires

  1. java qui fait la java
    Par vanos dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 14/10/2014, 17h31
  2. [Java] Installation Java
    Par invite6518ba45 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 05/06/2014, 21h00
  3. java
    Par invite6243ff93 dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 25/07/2011, 14h17
  4. Java, java, java, where are you, there's a mission for you !
    Par invite1237a629 dans le forum Logiciel - Software - Open Source
    Réponses: 35
    Dernier message: 16/03/2008, 23h10