2010-11-09 25 views
0

J'utilise la bibliothèque de persistance TopLink avec la base de données MySQL dans mes applications Java.Persistance Java, communications entre entités db et autres modèles

J'ai développé la bibliothèque de classes qui est utilisée par plusieurs applications de bureau, elle contient des classes spécifiques à mon projet. Les classes sont liées les unes aux autres, généralement avec des relations un-à-plusieurs.

Je souhaite que les classes d'entités DB et les classes spécifiques au projet soient séparées.

Comment devrais-je développer les communications entre ces classes (héritage, utilisation ou quelque chose?). Comment les relations entre les classes spécifiques au projet devraient-elles être développées lors du chargement (ou de la mise) dans la base de données?

Répondre

2

Je suppose que puisqu'il s'agit d'une application de bureau, c'est une application basée sur l'interface utilisateur. L'architecture MVC est donc la plus appropriée ici. Aussi je suppose que vous devriez utiliser des beans Java pour un accès asynchrone au modèle.

Définissez d'abord un modèle avec toute la définition requise.

Disons que

 class person 
{ 
     public PropertyChangeSupport propertyChange = new PropertyChangeSupport(this); 

     private String firstName; 
     private String middleName; 
     private String lastName; 
     private int gender; 
     private Integer age; 
     . 
     . 

     set Fname(String firstName) 
     { 
         propertyChangeSupport.firePropertyChange("firstName",this.firstName,this.firstName   = firstName); 
     } 
     . 
     . 
     . 
     public void setPropertyChange(PropertyChangeSupport propertyChange) { 
       this.propertyChange = propertyChange; 
     } 


     public PropertyChangeSupport getPropertyChange() { 
       return propertyChange; 
     } 

     public void removePropertyChangeListener(PropertyChangeListener listener) { 
     propertyChange.removePropertyChangeListener(listener); 
     } 

} 

Maintenant, nous avons besoin d'un fournisseur de modèle, ce qui serait un singleton. Maintenant, sur la partie de l'interface utilisateur, vous devez d'abord obtenir l'instance du fournisseur de modèle, puis effectuer toutes les autres interactions via le fournisseur de modèle.

+0

Merci pour votre réponse. Mais, si je vous ai bien compris, j'aurai 3 classes pour chaque entité - la classe DBEntity (implémente Serializable) qui est générée par NetBeans, la classe model (qui contient la logique métier et les associations, stockées dans la bibliothèque de classes) et la classe ModelProvider. Cela signifie également que je devrais créer 2 classes (classe ModelProvider et DBEntity) pour chaque modèle dans chaque application de bureau? –

+0

Maintenant, ce serait votre compétence, de concevoir les classes. Vous concevez les classes de bases correctement, alors vous partagerez la majeure partie du code. – Chaitannya

+0

BTW vous auriez besoin d'une classe de modèle séparée pour chaque modèle, mais le fournisseur de modèle pourrait être commun pour quelques ensembles de modèles. Encore une fois dépend de votre application et des compétences de conception – Chaitannya