The Open 18 prototype

      在这个游戏中,我们的任务是搭建一个被称为Open 18的社区,这个社区里住的都是快乐的golf爱好者。Golf这种运动域对象模型丰富,非常适合展示seam的特性。第一关中,我们要对已有的database schema进行反向工程,创建这个社区程序的原型。作者认为这个场景会让我们学会使用seam-gen这个上古神器,大菠萝中一开始可是只给个小木头棍子啊!有了seam-gen,我们就不用为组织新项目这个艰巨而又无聊的任务发愁了!而且,他能解决基础的数据库CRUD应用需求。有了这个原型之后,添加其他功能的剧情发展就比较自由了。其中的任务大致包括增加数据输入向导、球场特性对比、比分记录跟踪、球场收藏夹、email注册、PDF记分卡等。

      如果你想跟随我们搭建这个社区,那你得在你的硬盘里给seam和他的支持类库们找个落脚的地方。附录A中有个搭建seam的秘笈,你最好按照秘笈的指示去准备一下,这样就可以和我们一起出发了!

      把线路图拿出来,看看我们的目标在哪里,再听作者讲讲seam-gen怎么帮我们来搞定他!

我数到3,请你进入角色

      想象一下你是在一个阳光明媚的初夏午后(外面挺冷,这有点难),周三啦,还有两天就放假了。你刚刚跟“Golf Haven”订好了场地,准备着开始你的年度golf大逃亡呢!当你还沉浸在潇洒挥杆引无数MM尽折腰的幻想中的时候,BOSS出现了,它拍了拍你的肩膀!

      别做白日梦了,站在你面前的可是BOSS啊,再不醒你就要挂了!黎叔很严肃的说,刚刚的群雄大会上有人提醒他,几个月前就该搞完的那个web程序还没影子呢!紧张和不安在你的体内蔓延开来。。。

      销售团队希望在今年最大的交易展会上推出一个能访问公司的golf球场数据库的程序,不幸的是这个展会就在本周末开始。除了这个程序,他们没什么新东西了。让他们两手空空的去参加展会,不仅影响公司形象,还会损及公司信誉!事情发展到这个地步,应该解雇你的经理。但现实不会按你的期望发展,并且这种发展也不会带给你什么好处。现在,必须有人把帽子放在桌上,然后从里面拎出只兔子来。这个英雄就是你!

      如果这事儿搁在别的时候,不过是在你的那些烦心事里面再加一件而已。可现在,如果不能完成任务,你那热望了许久的假期可能就要泡汤了。一想到不能在破晓的时候站在第一个tee前面,不能置身于挂满露珠,富有禅意的风景中,你几乎马上就要死去了!谁让你天生就是个英雄呢,所以,还是先天下之忧而忧,后天下之乐而乐,在周末之前鼓捣个原型出来先吧!

      问题是,你的乾坤袋里没有能让时间停止的法宝,你也不是Ando!还好,你刚听说用seam-gen可以咻的一下整出一个还看得过去的Java EE 5应用程序来,所以,你决定试一下(这傻小子和我一样,什么都敢干啊!其实appfuse的gen也挺好用的)。剩下的问题就是需求了,正好,BOSS的邮件到了:

诸葛亮型老板的来信 写道
你必须给公司的golf俱乐部数据库配上一个web应用程序。用户应该能够浏览、分页、排序、和过滤所有的entities。选中一个俱乐部后,他们应该能够看到所有的相关细节,包括球场列表。而且,还要能通过球场列表中的连接了解到每个球场的球洞和发球区。管理员应该能够修改数据库记录。市场部还需要你在首页上放一些宣传材料!

现在需求有了。接下来该着手处理数据库了。 你需要和DBA安排一次会面,坐下来聊聊那个古老的话题:是现有entity还是先有schema。   

把entities映射到database schema上

       写程序总会遇到两种开发情况:自底向上和自顶向下。两者间的区别就是谁先到,数据库表还是entity 类。

       如果数据库schema先出来,那就是自底向上。schema基本上确定了entity class是什么样的。另一方面,如果entity class先出来,就是自顶向下。class控制着数据库schema如何设计。Hibernate之类的ORM工具为你的java class映射到database增加了些灵活性。比如说,你可以在不改变class 属性名称的情况下改变该属性对应的列名。然而,这种自由也是有限的,两者之间的偏离不能太大。他们两个先入为主,小的就得听大的使唤。作为程序员,谁先来你都要能伺候。seam-gen也是两样都行的。但在这一章,我们用自底向上,从数据库表创建java类。第四章,会展示下自顶向下,用golefer档案扩展数据库schema。

自底向上

       在这个自底向上的开发过程中,你要根据5个数据库表生成5个实体类。上片:


 

用seam-gen完成数据库表到java类的映射很简单,不像听起来那么麻烦。

搭建H2的过程。。。。。。

检查schema

访问H2的过程。。。。。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值