仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1288|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网站制作之Pratik Patel谈企业JPA、Fetch Groups及Spring 2.5仓酷云

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:33:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。ApacheOpenJPA框架供应一些JPA扩大特征,好比FetchGroups等,为企业Java开辟者猎取与Java对象所对应的数据的事情供应了更年夜的天真性。PratikPatel论述了怎样分离JPA计划手艺,利用JPAAPI和Spring2.5框架来开辟Java使用。在比来的NoFluffJustStuff(NFJS)俄亥俄州中央软件座谈会上,他就企业JP这一话题做了一次演讲。
Pratik谈到了怎样为利用JPAAPI完成耐久化的Java使用计划多个耐久化单位(persistenceunits,即PU),也谈到相干的功能调优手艺。他提到EJB3.0Entities(正式的叫法是EntityBeans)接纳了基于“POJO耐久化”计划观点的JPA。他说,在Java使用中利用供给商供应的特定扩大(好比“FetchGroups”)来举行JPA开辟是很有需要的。
Spring2.5框架与JPA的集成优秀,能够办理多个耐久化单位,也能够经由过程一些JPA设置细节(如数据源)把persistence.xml迁徙到Spring设置文件中,JPA的设置也就加倍天真。在利用Spring设置JPA把年夜段代码支解为小模块的时分,开辟职员就能够使用扩大点。一样,SpringTest模块对JPA类(如AbstractJpaTests)的单位测试、集成测试都供应很好的撑持。AbstractJpaTests类利用了一个背景classloader在运转时加强类,它环绕事件来包装测试办法,同时供应匡助类来声明使用高低文。SpringJPA模块(LocalContainerEntityManagerFactoryBean)还能够在容器外对JPA逻辑举行单位测试。
谈到锁(locking),Pratik说到JPA标准默许利用悲观锁(optimisticlocking)。固然,开辟者也能够自利用用失望锁(pessimisticlocking),但他们必要利用EntityManager的lock()大概find()办法来界说锁办理器。JPA以基于“版本”的体例来跟踪内存中数据的更新,只必要在耐久化类上加一个@Version属性,同时在数据库表中增加一个Version列。应该只管制止利用失望锁,由于它会影响吞吐量,并且很难从坏锁(badlocks)中恢复。Pratik以ApacheOpenJPA框架供应的@FetchGroup和@FetchPlan注解来举例申明JPAAPI的用法和功能调优。别的,他还谈到fetching逻辑的单位测试和集成测试,而且倡议人人对fetchgroups代码举行测试,这对使用投进到临盆情况中的历程很有保证。
关于JPA的最好理论,他但愿开辟者能思索利用内存数据库(如HSQLDB)而不要再用mockDAO完成。固然毗连到内存数据库会多花点工夫,但代码绝对要少良多,开辟价值也小。别的的最好理论还包含反省天生的SQL,这会使我们更深切懂得ORM工具天生的SQL查询语句。另外一件要思索的是DDL的天生,由于一切的JPA完成都同意天生DDL,这能够用来举行疾速开辟。在利用JPAAPI完成耐久化时还必要思索的其他一些事变以下:


  • 汇合排序(JPA2.0将引进一个叫做@OrderColumn的新注解,界说用来对照的列)
  • 尽早且频仍地革新缓存(Flush),统一事件中接下往的查询就不会再看到未革新的数据
  • 列举——数据库中速率与可读性的比力
在另外一个与JPA相干的演讲中,Pratik谈到了JPA查询言语(JPAQueryLanguage,即JPAQL),这类言语生成具有面向对象查询的特征,并且能够批量更新和删除。JPAQL与其他查询言语如JDOQL和HQL等很类似,但功效要比HQL少。关于lazy联系关系,FETCHJOIN表达式能够在获得主表数据的同时将联系关系的信息也一并取回。他还谈到了JPA2.0标准的一些新特征:

  • “Criteria”查询
  • 针对基础范例的汇合(Integer和String)
  • 扩大的Map撑持
  • 更多JPAQL表达式
  • 更好的锁撑持
检察英文原文:PratikPatelonEnterpriseJPA,FetchGroupsandSpring2.5
来自:http://www.infoq.com/cn/news/2008/08/nfjs2008-jpa-spring-2.5

首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
小女巫 该用户已被删除
沙发
发表于 2015-1-21 10:10:29 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-30 10:26:53 来自手机 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
若相依 该用户已被删除
地板
发表于 2015-2-6 06:59:15 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-11 03:34:09 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
分手快乐 该用户已被删除
6#
发表于 2015-3-1 20:32:23 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
因胸联盟 该用户已被删除
7#
发表于 2015-3-8 15:39:37 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-15 22:06:40 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
深爱那片海 该用户已被删除
9#
发表于 2015-3-22 05:45:08 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
蒙在股里 该用户已被删除
10#
发表于 2015-4-1 00:09:41 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
飘飘悠悠 该用户已被删除
11#
发表于 2015-4-1 11:12:27 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
admin 该用户已被删除
12#
发表于 2015-4-3 04:47:02 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
海妖 该用户已被删除
13#
发表于 2015-4-14 03:58:05 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
只想知道 该用户已被删除
14#
发表于 2015-4-22 21:30:01 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
谁可相欹 该用户已被删除
15#
发表于 2015-4-26 00:09:19 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
第二个灵魂 该用户已被删除
16#
发表于 2015-5-1 19:10:22 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
飘灵儿 该用户已被删除
17#
发表于 2015-5-2 01:11:19 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
活着的死人 该用户已被删除
18#
发表于 2015-6-12 12:01:12 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
乐观 该用户已被删除
19#
发表于 2015-6-30 19:04:48 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表