IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

GWT <--> Mysql avec Hibernate


Sujet :

GWT et Vaadin Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut GWT <--> Mysql avec Hibernate
    Bonjour,
    Je tente de développer une application en GWT (avec Ext) afin de pouvoir administrer une base de données Mysql.
    D'après mes lectures, il faut que je développe des services côté serveur pour écrire lire dans ma base de données grace à hibernate.
    Le problème est que je ne sais pas trop comment faire, si quelqu'un peut m'expliquer un peu.
    En effet je suis un peu perdu car j'ai suivi des tutoriaux qui faisaient des appels serveur par des RemoteServiceServlet par contre je ne sais pas comment les mettre en place, pour l'instant je test avec eclipse mais je n'ai pas de server Tomcat.

    Merci de votre aide.

  2. #2
    Membre éprouvé Avatar de Caroline76
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 94
    Par défaut
    Salut tatemilio,

    sur le serveur, c'est du java "pur". Donc tout ce qui concerne la connection a la base de donnees et l'extraction des donnees, c'est sans GWT.
    Tu devras utiliser des RPC pour interroger le serveur, le serveur ira chercher les donnees et les enverra sous la forme que tu veux (isSerilizable) au client.
    Pour les RPC avec GWT, c'est assez bien explique sur leur site.

  3. #3
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Attention, l'intégration d'Hibernate et GWT n'est pas aussi simple qu'il y paraît : le projet Hibernate4GWT permet de pas mal simplifier la tâche

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut
    Salut.

    Si tu as fait les tutos sur hibernate ça devrait aller assez vite.
    En gros voilà comment faire fonctionner tout ça.

    Côté serveur tu retrouves :
    - le fichier HibernateUtil (comme on a pu te le montrer dans les tutos)

    Côté Client tu retrouves :
    - tes classes de persistance
    - les fichiers de mapping associés

    Ensuite, en ce qui concerne la communication client / serveur, il existe un tuto très bien fait ici :
    http://moritan.developpez.com/tutori...remier/projet/

    Je te conseille vivement de le lire.
    Ensuite tu verras qu'il ne te reste plus qu'a placé l'ensemble de tes requêtes dans une classe dédiée à cela côté serveur et à créer tes interfaces côté client pour faire le lien.

    Voilà, bonne lecture et bon courage.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    Merci de vos réponse, je vais continuer à me documenter.
    Je viens de voir ce lien : http://code.google.com/p/gwt-hibernate/
    Cela signifie qu'il y a bel et bien un projet en cours pour la communication GWT <--> Hibernate.
    Car j'ai vu Hibernate4GWT avec le lot de problème pour "remonter" les POJO "Hibernate" dans l'IHM.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut
    Salut,

    je travaille actuellement sur un projet utilisant GWT et Hibernate. Et pour le moment je n'ai pas eu besoin hibernate4gwt. Pour ma part je trouve que ça fonctionne très bien. il faut cependant ajouter quelques librairies (que l'on trouve sans problème sur le site officiel de GWT) pour la manipulation de certains types de données.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    Bonjour maxime_c,
    Je suis très intéressé par la possibilité d'utiliser Hibernate dans un projet GWT.
    En effet je développe une application en SWT qui utilise un projet Java que j'ai developpé en Srping / Hibernate qui permet de gérer ma base Mysql.
    J'aimerai en paralèlle écrire une application me permettant d'administrer mes tables de référentiel sans passer par mon application SWT. En conséquence, je souhaite le faire en GWT en utilisant mon projet existant (Spring /Hibernate).

    Par contre je souhaiterai utiliser mes objets métier tel quel dans GWT et je crois que cela n'est pas réellement possible c'est pourquoi le projet hibernate4gwt a été développé non ?
    Peux tu me donner les références des librairies que tu parle dans ton post et eventuellement quelques conseils.
    Dernier point, peux tu me parler un peu plus du projet GWT-Hibernate (RoadMap, Première Version ...)

    Merci de ton aide.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut
    Citation Envoyé par tatemilio2 Voir le message
    Dernier point, peux tu me parler un peu plus du projet GWT-Hibernate (RoadMap, Première Version ...)
    Oops, je crois qu'il y a confusion, je ne bosse pas sur ce projet :
    http://code.google.com/p/gwt-hibernate/ !!!

    Je suis simplement sur un projet utilisant les deux technologies.
    Concernant le projet hibernate4gwt, il est vrai que je ne me suis pas trop attardé sur la question, mais c'est simplement que je n'en ai pas eu besoin jusque là (pour récupérer/ajouter/modifier des données dans la base, il n'y a pas de soucis).

    Par ailleurs je parlais de certaines librairies utiles, il s'agit en fait de librairies permettant de manipuler certains types de données (sql.Time ou sql.Date par exemple).

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    Effectivement, je pensais que tu bossé sur le projet GWT-HIBERNATE.
    Par contre dans ton application tu remonte tes objets (POJO) dans GWT ou tu as des DTO ?

  10. #10
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut
    Tu peux directement utiliser tes objets dans GWT, à condition que ceux-ci respectent quelques règles :
    · implémenter l’interface IsSerializable
    · Interface Serialisable non supportée
    · Les objets du Domaine doivent utiliser la syntaxe Java 1.4

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    Ok,
    Donc on ne peut pas utiliser les POJO (Hibernate) dans l'interface GWT.
    Car si je ne me trompe pas malgré le fait que les objets métier définis soient des POJO tout simple lorsque Hibernate "les utilise", il les transforme en objet qui ne sont pas IsSerializable de plus il rajoute des proxy ...
    Nous sommes bien d'accord ?

    Merci.

  12. #12
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut
    Désolé pour cette réponse tardive...

    Mais tu peux utiliser tes objets métiers au prix de quelques modifications.
    Voilà un exemple de ce qui est réalisable :

    Dans mon appli, je construit une grille qui contient des cellules.
    Les données contenues dans ces cellules proviennent de ma BDD.
    Voici la classe Cellule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    public class Cellule extends Composite implements IsSerializable{
     
    	private int id;
    	private String texte;
    	private Time heure;
    	private Date date;
     
     
    	public Cellule(){}
     
    	public CelluleTest(String texte, Time heure, Date date){
    		this.texte = texte;
    		this.heure = heure;
    		this.date = date;
    	}
     
    	public int getId() {
    		return id;
    	}
     
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	public String getTexte() {
    		return texte;
    	}
     
    	public void setTexte(String texte) {
    		this.texte = texte;
    	}
     
    	public String toString(){
    		if(texte==null){
    			return "cellule n°"+id+" = "+"\ncellule vide";
    		}
    		return ("cellule n°"+id+" = "+date+"\n"+heure+"\n"+texte);
    	}
     
    	public Time getHeure() {
    		return heure;
    	}
     
    	public void setHeure(Time heure) {
    		this.heure = heure;
    	}
     
    	public Date getDate() {
    		return date;
    	}
     
    	public void setDate(Date date) {
    		this.date = date;
    	}
     
    	public void creer(){
    		VerticalPanel panel = new VerticalPanel();
    		if(getTexte()==null){
    			panel.add(new Label("cellule vide"));
    		}
    		else{
    			panel.add(new Label(getDate().toString()));
    			panel.add(new Label(getHeure().toString()));
    			panel.add(new Label(getTexte()));
    		}	
    		initWidget(panel);
    		setStyleName("cellule");
    		setSize("100%", "100%");
    	}
    }
    Je peux donc les manipuler et les insérer directement dans grille, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    maCellule.creer();
    maGrille.setWidget(i, j, maCellule);
    Je ne sais pas si ça répond vraiment à ta question...

    Encore désolé pour le temps que j'ai mis à répondre.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    Merci pour le bout de code, je pense que cela va m'etre utilie.

Discussions similaires

  1. gestion de la base données mysql avec hibernate impossible
    Par douaa.flower dans le forum Hibernate
    Réponses: 5
    Dernier message: 18/04/2011, 15h04
  2. Problème de connexion à la base MySql avec Hibernate
    Par aloublack dans le forum Hibernate
    Réponses: 0
    Dernier message: 14/10/2010, 18h58
  3. Configuration MySql avec Hibernate et Spring
    Par _Babar_ dans le forum Frameworks Web
    Réponses: 34
    Dernier message: 11/10/2010, 11h25
  4. Réponses: 3
    Dernier message: 22/09/2009, 10h43
  5. Réponses: 2
    Dernier message: 29/01/2007, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo