Bonjour à tous,
J'ai un doute concernant le développement en Java, peut-on utiliser le modèle MVC et JDBC? A priori je pense que oui, vu que JDBC s'occupe de la connexion à la base de données.
Pouvez-vous m'éclairer sur ce sujet?
Merci d'avance ;)
Version imprimable
Bonjour à tous,
J'ai un doute concernant le développement en Java, peut-on utiliser le modèle MVC et JDBC? A priori je pense que oui, vu que JDBC s'occupe de la connexion à la base de données.
Pouvez-vous m'éclairer sur ce sujet?
Merci d'avance ;)
Oui tu peux tout à fait utiliser JDBC avec le pattern MVC, comme n'importe quelle autre source de données.
En fait je vais devoir manipuler une base de données, qui correspondra à la partie Modèle du pattern MVC et pour accéder à cette base de données, j'aurais voulu utiliser JDBC, je pense donc que c'est possible!!
Je vais t'arrêter tout de suite.
Dans le MVC, le modèle n'est absolument pas la base.
De fait, dans les classes correspondant au pattern MVC, normalement, tu ne devrais pas avoir à importer de classes JDBC.
Le modèle d'un MVC correspond à une classe contenant les données devant être affichées sur un écran.
cf http://baptiste-wicht.developpez.com...onception/mvc/
Toute la partie récupération des données et création des modèles à partir de ces données doit être réalisée dans une couche à part, appelée couche de service usuellement. Cette couche de service est utilisée par le contrôleur pour récupérer les objets qui serviront de modèle dans le pattern MVC.
Dans ton cas précis, pour la couche service, dirige toi vers le patter DAO: http://cyrille-herby.developpez.com/...c-pattern-dao/
Ce que je voulais dire c'est que les données de ma base seront la partie modèle de mon MVC. Ensuite je voulais juste savoir si j'aurais à utiliser JDBC pour l'accès à ces données. Mes bases de données existent et je souhaite afficher des données de ces bases!!
Je suis désolé...j'ai bien lu la partie modèle du tuto mais je ne comprends toujours pas ce que sera ma partie modèle dans mon MVC!! C'est la 1ère fois que je vais utiliser ce pattern et j'ai quelques zones d'ombre
Le modèle, ce sont des objets qui contiennent des données. Ces objets n'ont pas d'accès à la base de donnée.
Tu va avoir le controlleur, qui va donner l'ordre au DAO de charger des données et qui va en faire un modèle.
Ensuite, plus tard, tu va de nouveau avoir le controlleur qui va prendre ton modèle de donnée et le sauver sur la db via un DAO
Ok d'accord en fait je vais devoir utiliser un modèle MVC pour l'architecture globale, DAO pour pouvoir charger mes données et JDBC pour tester la connectivité avec ma base de données!!
Le but de JDBC n'est pas vraiment de tester la connexion à la base, ça c'est juste un effet de bord.
Le but de JDBC est d'être appelé dans le DAO pour effectuer la récupération des données.
Puis le DAO prend les données issues de la base et crée à partir de celles ci les objets qui feront office de modèle dans ton MVC. (DAO qui est bien sûr utilisé dans le controleur de ton MVC).
D'accord donc pour résumer j'aurais besoin de ces trois "éléments", une architecture MVC et les deux pattern DAO et JDBC pour bien récupérer les données de ma Base de Données??
JDBC n'est pas un pattern, juste une API que tu utilises dans tes DAO.
Oui d'accord mais globalement je n'aurais besoin que de ça?
Cà dépend, et pour pouvoir répondre, il nous faudrait savoir vraiment ce que tu veux faire. En fait, si j'ai bien compris, ce que tu veux faire, c'est te connecter à une base de données via JDBC et afficher tes données. Je ne sais pas comment tu veux réaliser ta partie affichage, si c'est un site web ou du swing, ou autre chose.
Indépendamment de l'affichage, tu peux commencer par créer une interface qui définit les données que tu veux charger. Ensuite, tu l'implémentes avec JDBC (chargement du driver, connection, requêtes, déconnection). Cette interface et son implémentation peuvent te servir de point d'entrée pour ton modèle. Dans un premier temps, tu peux tester la partie base de données avec un main qui affiche quelques lignes.
Et pour l'affichage, tu veux faire comment?
En fait ce que je souhaite faire c'est afficher les résultats de requêtes de bases de données dans des jtable par exemple et ensuite insérer des champs de recherche qui actualiseront la jtable en fonction de ce que l'on a tapé.