快速业务通道

Java数据对象技术JDO简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
。这个公司在遍布美国的很多商店中出租和出售多种形式的娱乐音像产品。他们的商店中有一些售货亭,提供一些电影以及电影中的演员的信息。这些信息对客户和商店的职员开放,以帮助选择适合客户口味的商品。

定义数据对象模型

我们将建立一个UML类图,显示一个公司的对象模型的相关类以及相互之间的关系。一个Movie(电影)对象表示一部特定的电影。每个至少在一部电影中出演角色的演员由一个Actor(演员)对象代表。而Role(角色)类表示某个演员在某部电影中扮演的特定角色,因此Role类也表示了电影和演员之间的一种关系,这种关系包含一个属性(电影中的角色名)。每部电影包含一到多个角色。每个演员可以在不同的电影中扮演不同的角色,甚至在同一部电影中扮演多个角色。

我们会将这些数据类以及操纵这些数据类实例的的程序放到com.mecdiamania.prototype包中。

Java数据对象技术JDO简介(2)

时间:2010-12-05

需要存储的类

我们定义Movie、Actor和Role这几个类为可持续的,表示它们的实例是可以被储存到数据库中的。首先我们看看每个类的完整的源代码。每个类中有一个package语句,因此可以很清楚地看到本例用到的每个类分别在哪个包中。

例1-1显示了Movie类的源代码。JDO是定义在javax.jdo包中的,注意这个类并不一定要导入任何具体的JDO类。Java中的引用和java.util包中的Collection及相关子类(接口)被用来表示我们的类之间的关系,这是大多数Java应用中的标准方式。

Movie类中的属性使用Java中的标准类型,如String、Date、int等等。你可以将属性声明为private的,不需要对每一属性定义相应的get和set方法。Movie类中还有一些用于访问这些私有属性的方法,尽管这些方法在程序中的其它部分会用到,但它们并不是JDO所要求的。你可以使用属性包装来提供仅仅是抽象建模所需要的方法。这个类还有一些静态属性(static的),这些属性并不存储到数据库。

"genres"属性是一个String型的,内容是该电影所属的电影风格(动作、爱情、诡异等等)。一个Set接口用来表示该电影的演员表中的角色集合。"addRole()"方法将元素加入到演员表中,而"getCast()"方法返回一个不可以更改的集合,该集合中包含演员表。这些方法并不是JDO规定的,只是为了方便应用编程而编写的。"parseReleaseDate()"方法和"formatReleaseDate()"方法用于将电影的发行日期标准化(格式化)。为了保持代码的简单,如果parseReleaseDate()的参数格式不对,将会返回null。

例1-1 Movie.java

package com.mediamania.prototype; import java.util.Set; import java.util.HashSet; import java.util.Collections; import java.util.Date; import java.util.Calendar; import java.text.SimpleDateFormat; import java.text.ParsePosition; public class Movie {    private 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 = du

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号