仓酷云

标题: 发布一篇JPA计划形式系列一 DAO Pattern in JPA [打印本页]

作者: 若天明    时间: 2015-1-18 11:03
标题: 发布一篇JPA计划形式系列一 DAO Pattern in JPA
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
作为JavaEE5标准一部分的JPA,已有浩瀚的完成,好比:Hiberante,TopLink,EclipseLink和OpenJPA等很多ORM框架。JPA不单单使用于EJB3中,你也能够使用EJB3以外的使用,好比Spring中。乃至GavinKingHiberante的作者在HiberanteinAction的第二版书中也保举利用JPA。很分明,JPA将被普遍的使用。
一旦你熟习annotation,并实验过Helloworld之类的程序后,你会感到,恩JPA的确不错。然后,当你在你的项目中入手下手使用JPA时,你会发明实在其实不那末复杂,你必要思索怎样处置事件,惰性加载,移除对象实例,承继等等。这些成绩会在本系列中给你谜底。
起首进进第一的计划形式DAO。
我们必要DAO吗?
在二年前,我们已会商了这个成绩了,会商的了局是:是不是利用DAO依附于你的使用,相似于GOF的计划形式,假如是很复杂的使用程序,使用计划形式,只能增添你的庞大度。 而关于庞大使用程序,正由于其庞大,使用计划形式能够减低庞大度,进步可保护性。 
使用了DAO我们能够失掉以下优点:
1.制止在任何存取数据的代码中引进EntityManager,削减了依附。
2.对某些实体Bean操纵增添限定。好比你不想对LogEntry供应删除操纵,使用DAO,你仅仅做的是不要在LogEntryDAO中不要增加remove的办法。
3.实际上,使用DAO层,你一个自在切换其他的耐久机制好比纯JDBC大概Ibatis.而实践上,JPA已是一个笼统层,这类切 换是没成心义的。
4.你能够在一个实体中会合一切的查询制止这些查询在其他代码中呈现。你可使用namedqueries 在实体类中查询,可是您仍旧必要准确的参数被设置。对应这类查询,你能够在DAO中设置参数,然后转换成准确的前往范例,好比:
public List<ChangePlan> findExecutingChangePlans() {
      Query query = entityManager.createQuery(
            "SELECT plan FROM ChangePlan plan where plan.state = EXECUTING");
      return (List<ChangePlan>) query.getResultList();
}
然后,但你决意利用DAO时,怎样准确公道的利用它呢?在Spring的JpaTemplate的JavaDoc中倡议,不要利用相似特别的类,相似JpaDaoSupport。而是你应当本人经由过程@PersistenceContext正文猎取EntityManger来保护你的DAO。这类体例能够在EJB3的容器中事情,而且假如你在Spring的context到场PersistenceAnnotationBeanpostProcessorBean的话,在Spring2.0里也是没有成绩的。
范例平安且泛化的DAOpattern
由于每个DAO都包括一些不异的逻辑,以是我们应当抽取这些逻辑放进到父类中。
<p>
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之!
作者: 透明    时间: 2015-1-20 13:19
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 灵魂腐蚀    时间: 2015-1-23 08:04
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 第二个灵魂    时间: 2015-1-25 20:14
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 深爱那片海    时间: 2015-1-29 06:13
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 愤怒的大鸟    时间: 2015-2-5 18:51
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 海妖    时间: 2015-2-13 04:37
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 小女巫    时间: 2015-3-3 13:25
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 简单生活    时间: 2015-3-11 11:04
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 莫相离    时间: 2015-3-18 07:22
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 飘灵儿    时间: 2015-3-25 13:04
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2