AppFuse官方文档中Hibernate例子Person创建过程的疑惑

问题描述

在AppFuse官方文档 http://appfuse.org/display/APF/Using+Hibernate 中给出了创建一个新model的实例。文档称要建立一个model 名为Person,需要建立相应的 PersonDao接口和PersonDaoHibernate实现。PersonDao 接口定义了方法public List<person> findByLastName(String lastName);PersonDaoHibernate 继承了 GenericDaoHibernate,并实现了PersonDao 接口: public List<person> findByLastName(String lastName) { return getHibernateTemplate().find("from Person where lastName=?", lastName); }为何不直接使用 PersonDaoHibernate ,而要多建一个 PersonDao 接口呢?难道每建一个 model 都要建立相应的3个类吗?太麻烦了。问题补充整明白了,谢谢各位,我想AppFuse这样做,一是代码生成使用mvn appfuse:gen 能够自动化;一是可以转换Dao的实现。比如:PersonDaoHibernate如果用着不爽要, 可以使用PersonDaoiBatis。再问一下,如果我现在有了model类Person,eclipse自己能否重构出PersonDao,PersonDaoImpl,PersonService,PersonServiceImpl?如果能的话,怎么做?

解决方案

spring推荐,每个model大概5个类。 model 本身一个 ,一个dao接口,一个dao实现类,一个service接口,一个service实现类。 推荐归推荐,用不用建这么多类,就看个人爱好了。
解决方案二:
有ide工具 。。refactor一下就出来了,不用自己去写。在这个前提下 有个api好些咯。可以让概念和实现分开
解决方案三:
PersonDao主要是个人喜好,因为实际开发,大部分情况下一个dao只有一个实现类,另整个PersonDaoHibernate实在没有什么必要.有些同学喜欢查看dao接口声明,是因为可以一目了然dao提供调用的所有方法,而直接DaoHibernate的话,会混杂很多其它代码.
解决方案四:
chinajj 写道spring推荐,每个model大概5个类。 model 本身一个 ,一个dao接口,一个dao实现类,一个service接口,一个service实现类。 推荐归推荐,用不用建这么多类,就看个人爱好了。目前我的做法是每个model就一个类,所有model公用一个通用的dao接口 dao实现 和一个通用的service接口 service实现 ,一般情况只使用这个通用的dao,有需要抽取的地方才使用spring推荐的做法,开发速度要快很多,而且功能实现了以后再重构成spring推荐的方式也没啥难度。

时间: 2024-08-02 06:06:47

AppFuse官方文档中Hibernate例子Person创建过程的疑惑的相关文章

docker官方文档中的dns,link,expose,publish

link是过时的了,尽量不要用. dns内部集成,也可以用外部. expose只是用于记录,并不真的. publish是否起作用,也要看情况,是否被占用端口. --------------------------------------   Embedded DNS server Docker daemon runs an embedded DNS server which provides DNS resolution among containers connected to the sam

比照官方文档进行keystone部署,验证生成token,在adminTenant中成功,但在openstakDemo中失败

问题描述 http://docs.openstack.org/essex/openstack-compute/install/apt/content/verifying-identity-install.html完全按照官方文档进行操作的.我查看了keystone数据库的tenant表+---------------+----------------------------------------------------+|name|extra|+---------------+--------

jQuery 1.4官方文档详细讲述新特性功能

为了庆祝jQuery的四周岁生日, jQuery的团队荣幸的发布了jQuery Javascript库的最新主要版本! 这个版本包含了大量的编程,测试,和记录文档的工作,我们为此感到很骄傲. 我要以个人的名义感谢 Brandon Aaron, Ben Alman, Louis-Rémi Babe, Ariel Flesler, Paul Irish, Robert Kati?, Yehuda Katz, Dave Methvin, Justin Meyer, Karl Swedberg, and

TestNG官方文档中文版(3)-testng.xml

TestNG的官方文档的中文翻译版第3章,原文请见 http://testng.org/doc/documentation-main.html 3 - testng.xml 调用TestNG由几种不同方法: * 使用testng.xml文件 * 使用ant * 从命令行 这节描述testng.xml的格式(文档的后面会讲到ant和命令行). 当前testng.xml的DTD文件可以从官方找到:http://testng.org/testng-1.0.dtd.( 为了方便使用,你可能更喜欢浏览HT

《Apache Velocity用户指南》官方文档

Quick Start 本项目是 Apache Velocity官方文档的中文翻译版,Velocity类似与JSP,是一种基于Java的模板引擎.它可以在web页面中引用Java代码中定义的数据和对象,而Velocity的作用就是把Web视图和java代码进行组装在一起.本次翻译主要针对对Velocity感兴趣和工作中使用到Velocity的开发人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助. 由于我也是第一次接触Velocity,还不是很深入,翻译的时候也查看了一些博客以及其他网

1.主动学习很重要,主动学习很重要,主动学习很重要 2.官方文档 3.实践(转)

IT行业中的企业特点是都属于知识密集型企业.这种企业的核心竞争力与员工的知识和技能密切相关.而如果你在企业中扮演的是工程师的角色的话,那么你的核心竞争力就是IT相关的知识与技能的储备情况.而众所周知,IT行业是一个大量产生新知识的地方,就拿Web前端举例,短短的5,6年时间,Web前端已经经历了数次变革,就目前来看变革还将继续下去.从以前的div+css网格化布局到JavaScript的方兴未艾,然后是各种JavaScript框架的百家争鸣,HTML5和CSS3的落地,移动web冲击下带来的响应

Docker安全性——官方文档[译]

Docker安全性--官方文档[译] 本文译自Docker官方文档:https://docs.docker.com/articles/security/ 在审查Docker的安全时,需要考虑三个主要方面:◦容器内在的安全性,由内核命名空间和cgroup中实现;◦docker守护程序本身的攻击面;◦加固内核安全特性,以及它们如何与容器中互动. 内核 命名空间 Kernel Namespace Docker容器中非常相似LXC容器,并且它们都具有类似的安全功能.当您以"docker run"

《Spark官方文档》Spark操作指南

原文链接   译者:小村长 Spark–Quick Start 本项目是 Apache Spark官方文档的中文翻译版,致力于打造一个全新的大数据处理平台来满足大数据处理和分析的各个使用场景,本次翻译主要针对对Spark感兴趣和致力于从事大数据方法开发的人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助. Spark最近几年在国内外都比较火,在淘宝.百度.腾讯.高伟达等一些公司有比较成熟的应用,做大数据方面的开发人员或多或少都与其有接触.Spark的中文资料相对前几年相对较多,但是我认

Android 线性布局(LinearLayout)相关官方文档 - 指南部分

Android 线性布局(LinearLayout)相关官方文档 - 指南部分 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Android 官方文档线性布局相关资源链接汇总如下: andro