Java数据对象技术JDO初步概览(二)

2014-11-23 21:31:31 · 作者: · 浏览: 21
ivate static SimpleDateFormat yearFmt = new SimpleDateFormat("yyyy"); public static final String[] MPAAratings = { "G", "PG", "PG-13", "R", "NC-17", "NR"}; private String title; private Date releaseDate; private int runningTime; private String rating; private String webSite; private String genres; private Set cast; // element type: Role private Movie() {} public Movie(String title, Date release, int duration, String rating, String genres) { this.title = title; releaseDate = release; runningTime = duration; this.rating = rating; this.genres = genres; cast = new HashSet(); } public String getTitle() { return title; } public Date getReleaseDate() { return releaseDate; } public String getRating() { return rating; } public int getRunningTime() { return runningTime; } public void setWebSite(String site) { webSite = site; } public String getWebSite() { return webSite; } public String getGenres() { return genres; } public void addRole(Role role) { cast.add(role); } public Set getCast() { return Collections.unmodifiableSet(cast); } public static Date parseReleaseDate(String val) { Date date = null; try { date = yearFmt.parse(val); } catch (java.text.ParseException exc) {} return date; } public String formatReleaseDate() { return yearFmt.format(releaseDate); } }
   JDO对一个需要存储的类强加了一个要求:一个无参数的构造器。如果你在类代码中不定义任何构造器,编译器会自动产生一个无参数的构造器;而如果你定义了带参构造器,你就必须再定义一个无参构造器,可以将其声明为private以禁止外部访问。如果你不定义这个无参构造器,一些JDO产品会自动为你产生一个,但这只是具体的JDO产品提供的功能,是不可移植的。

  例1-2显示了Actor类的 源码。在我们的目标中,所有的演员都有一个不会重复的名字来标识自己,可以是与出生时的姓名不同的化名。基于此,我们用一个String来表示演员的姓名。每个演员可能扮演一到多个角色,类中的"roles"成员表示Actor与Role关系中Actor的这一边的属性。第①行的注释仅仅为了文档化,它并不为JDO实现任何特殊的功能。第②行和