Java持久性,db实体与其他模型之间的通信

时间:2010-11-09 21:49:33

标签: java mysql persistence toplink

我在我的Java应用程序中使用TopLink持久性库和MySQL数据库。

我开发了几个桌面应用程序使用的类库,它包含一些特定于我的项目的类。类彼此链接,通常具有一对多关系。

我希望DB Entity类和Project特定的类是分开的。

我应该如何开发这些类之间的通信(继承,使用或其他什么?)。在将项目特定类加载(或放入)数据库时,应如何开发项目特定类之间的关系?

1 个答案:

答案 0 :(得分:2)

我想因为它是一个桌面应用程序,所以它是一个基于UI的应用程序。所以MVC架构最适合这里。另外我猜你必须使用Java bean来异步访问模型。

首先定义一个需要所有定义的模型。

让我们说

        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);
        }

}

现在我们需要一个模型提供者,它将是一个单例模式。

class PersonMOdelProvider
{

private static List<Person> lst ;
private static PersonMOdelProvider content;
private PersonMOdelProvider()
{
  // Get data from data base layer.
  lst = new ArrayList<Person>();
  //load the list from database
}

public static PersonModelProvider getInstance()
{
 if (content!=null) return content;
content = new PersonMOdelProvider();
return content;
}

.
.
.
set ... get methods for binding db with model. 

}

现在在UI部分,您首先需要获取模型提供者的实例,并通过模型提供者进行所有进一步的交互。