Jsp and sql

Salam,

Y a-t-il des pros en jsp et sql qui pourraient m'aider à débloquer mon problème. Je suis en train de créer un système crud en jsp. J'ai crée une table qui se nomme "ecole" avec plusieurs variables.
Dans ma page web, au niveau du formulaire je parviens à ajouter plusieurs entrées et à les récupérer et à les afficher.

Maintenant j'aimerais créer une seconde table "nom" toujours dans ma classe "BD" où il y a ma classe "ecole" mais je vois pas trop comment faire ??? J'ai résolu mon soucis en créant une nouvelle classe NomBD , et tout fonctionne mais vous vous imaginez si on avait 15 tables ???

Avez-vous une idée de comment je pourrais faire pour utiliser une seule classe pour mes deux tables?


Code:
public class EcoleBD {

    public static Connection getConnection(){
        Connection ***=null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            ***=DriverManager.getConnection("jdbc:mysql://localhost:3306/exemple","root","");
        }catch(Exception e){System.out.println(e);}
        return ***;
    }
    public static int save(Ecole u){
        int status=0;
        try{
            Connection ***=getConnection();
            PreparedStatement ps=***.prepareStatement(
                    "insert into ecole(nom_ecole, adresse_ecole) values(?,?)");
            ps.setString(1,u.getNom_ecole());
            ps.setString(2,u.getAdresse_ecole());
            status=ps.executeUpdate();
        }catch(Exception e){System.out.println(e);}
        return status;
    }
    
    public static List<Ecole> getAllRecords(){
        List<Ecole> list=new ArrayList<Ecole>();

        try{
            Connection ***=getConnection();
            PreparedStatement ps=***.prepareStatement("select * from ecole");
            ResultSet rs=ps.executeQuery();
            while(rs.next()){
                Ecole u=new Ecole();
                u.setPk_ecole(rs.getInt("pk_ecole"));
                u.setNom_ecole(rs.getString("nom_ecole"));
                u.setAdresse_ecole(rs.getString("adresse_ecole"));
                list.add(u);
            }
        }catch(Exception e){System.out.println(e);}
        return list;
    }
    public static Ecole getRecordById(int pk_ecole){
        Ecole u=null;
        try{
            Connection ***=getConnection();
            PreparedStatement ps=***.prepareStatement("select * from ecole where pk_ecole=?");
            ps.setInt(1,pk_ecole);
            ResultSet rs=ps.executeQuery();
            while(rs.next()){
                u=new Ecole();
                u.setPk_ecole(rs.getInt("pk_ecole"));
                u.setNom_ecole(rs.getString("nom_ecole"));
                u.setAdresse_ecole(rs.getString("adresse_ecole"));
            }
        }catch(Exception e){System.out.println(e);}
        return u;
    }
}
 
Dernière édition:
Je n'ai pas compris ce que tu veux faire.
Tu as une classe Ecole qui contient déjà l'attribut nom, mais tu veux créer une autre classe Nom (donc une 2ème table)? Cette classe Nom, elle a quoi comme attributs (variables)?
 
Je n'ai pas compris ce que tu veux faire.
Tu as une classe Ecole qui contient déjà l'attribut nom, mais tu veux créer une autre classe Nom (donc une 2ème table)? Cette classe Nom, elle a quoi comme attributs (variables)?

Bonsoir Actarius,

Dans ma classe Eleve on a 5 attributs (pk_eleve, fk_ecole, nom_eleve, prenom_eleve, naissance_eleve)
Voir annexe pour la table Eleve, l'utilisateur peut encoder et afficher les enregistrements

Dans ma classe Ecole on a 3 attributs (pk_ecole, nom_ecole, adresse_ecole)

Mon premier problème c'est que je n'utilise pas les fonctions(méthodes) de manières correctes! Normalement une méthode doit nous permettre de faciliter notre code. Or moi je suis en train de me compliquer la vie !

Pour ajouter des enregistrements dans mon formulaire ; j'ai crée une méthode save qui permet de stocker les enregistrements de l'utilisateur. Ensuite j'ai crée une autre méthode getAllRecords qui va me permettre d'afficher les entrées.

PHP:
public static int save(Eleve u){
        int status=0;
        try{
            Connection ***=getConnection();
            PreparedStatement ps=***.prepareStatement(
                    "insert into eleve(nom_eleve,prenom_eleve,naissance_eleve,fk_ecole) values(?,?,?,?)");
            ps.setString(1,u.getNom_eleve());
            ps.setString(2,u.getPrenom_eleve());
            ps.setString(3,u.getNaissance_eleve());
            ps.setInt(4,u.getFk_ecole());
            status=ps.executeUpdate();
        }catch(Exception e){System.out.println(e);}
        return status;
    }

et

Code:
public static List<Eleve> getAllRecords(){
        List<Eleve> list=new ArrayList<Eleve>();

        try{
            Connection ***=getConnection();
            PreparedStatement ps=***.prepareStatement("select * from eleve");
            ResultSet rs=ps.executeQuery();
            while(rs.next()){
                Eleve u=new Eleve();
                u.setPk_eleve(rs.getInt("pk_eleve"));
                u.setNom_eleve(rs.getString("nom_eleve"));
                u.setPrenom_eleve(rs.getString("prenom_eleve"));
                u.setNaissance_eleve(rs.getString("naissance_eleve"));
                u.setFk_ecole(rs.getInt("fk_ecole"));
                list.add(u);
            }

        }catch(Exception e){System.out.println(e);}
        return list;
    }

J'aimerais bien maintenant ajouter ma table "Ecole" dans ma méthode save et getAllRecords.
Je pense avoir réussi à adapter ma méthode save, mais je n'y arrive pas avec la méthode getAllRecord comment faire 2 ArrayLists dedans ???

Code:
public static int save(Eleve u, Ecole m){
        int status=0;
        try{
            Connection ***=getConnection();
            PreparedStatement ps1=***.prepareStatement(
                    "insert into eleve(nom_eleve,prenom_eleve,naissance_eleve,fk_ecole) values(?,?,?,?)");
            ps1.setString(1,u.getNom_eleve());
            ps1.setString(2,u.getPrenom_eleve());
            ps1.setString(3,u.getNaissance_eleve());
            ps1.setInt(4,u.getFk_ecole());
            status=ps.executeUpdate();

            PreparedStatement ps2=***.prepareStatement(
                    "insert into ecole(nom_ecole, adresse_ecole) values(?,?)");
            ps2.setString(1,m.getNom_ecole());
            ps2.setString(2,m.getAdresse_ecole());
            status=ps2.executeUpdate();
           
        }catch(Exception e){System.out.println(e);}
        return status;
    }
 

Pièces jointes

  • AffichageEntreeEleve.png
    AffichageEntreeEleve.png
    3.8 KB · Affichages: 3
  • Formulaire Eleve.png
    Formulaire Eleve.png
    3 KB · Affichages: 2
Haut