- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java常用框架总结
Java杂谈ORM????????这是最后一篇Java杂谈了,以ORM框架的谈论收尾,也算是把J2ee的最后一方面给涵盖到了,之所以这么晚才总结出ORM这方面,一是笔者这两周比较忙,另一方面也想善始善终,仔细的先自己好好研究一下ORM框架技术,不想草率的敷衍了事。??????????其实J2ee的规范指南里面就已经包括了一些对象持久化技术,例如JDO(Java???????Data???????Object)就是Java对象持久化的新规范,一个用于存取某种数据仓库中的对象的标准化API,提供了透明的对象存储,对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC???????API的使用)。这些繁琐的工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。我们如果要理解对象持久化技术,首先要问自己一个问题:为什么传统的JDBC来持久化不再能满足大家的需求了呢???????????笔者认为最好是能用JDBC真正编写过程序了才能真正体会ORM的好处,同样的道理,真正拿Servlet/Jsp做过项目了才能体会到Struts、?Spring等框架的方便之处。很幸运的是笔者这两者都曾经经历过,用混乱的内嵌Java代码的Jsp加Servlet转发写过完整的Web项目,也用?JDBC搭建过一个完整C/S项目的后台。所以现在接触到新框架才更能体会它们思想和实现的优越之处,回顾从前的代码,真是丑陋不堪啊。^_^??????????回到正题,我们来研究一下为什么要从JDBC发展到ORM。简单来说,传统的JDBC要花大量的重复代码在初始化数据库连接上,每次增删改查都要获得?Connection对象,初始化Statement,执行得到ResultSet再封装成自己的List或者Object,这样造成了在每个数据访问方法中都含有大量冗余重复的代码,考虑到安全性的话,还要加上大量的事务控制和log记录。虽然我们学习了设计模式之后,可以自己定义Factory来帮助减少一部分重复的代码,但是仍然无法避免冗余的问题。其次???随着OO思想深入人心,连典型的过程化语言Perl等都冠冕堂皇的加上了OO的外壳,何况是?Java中繁杂的数据库访问持久化技术呢?强调面向对象编程的结果就是找到一个桥梁,使得关系型数据库存储的数据能准确的映射到Java的对象上,然后针对Java对象来设计对象和方法,如果我们把数据库的Table当作Class,Record当作Instance的话,就可以完全用面向对象的思想来编写数据层的代码。于是乎,Object???????Relationship???????Mapping的概念开始普遍受到重视,尽管很早很早就已经有人提出来了。??????????缺点我们已经大概清楚了,那么如何改进呢?对症下药,首先我们要解决的是如何从Data???????Schema准备完美的映射到Object???????Schema,另外要提供对数据库连接对象生命周期的管理,对事务不同粒度的控制和考虑到扩展性后提供对XML、Properties等可配置化的文件的支持。到目前为止,有很多框架和技术在尝试着这样做。例如似乎是封装管理得过了头的EJB、很早就出现目前已经不在开发和升级了的Apache???????OJB、首先支持Manual???????SQL的iBATIS,还有公认非常优秀的Hibernate等等。在分别介绍它们之前,我还想反复强调这些框架都在试图做什么:??????????毕竟Java???????Object和数据库的每一条Record还是有很大的区别,就是类型上来说,DB是没有Boolean类型的。而Java也不得不用封装类(Integer、Double等)为了能映射上数据库中为null的情况,毕竟Primitive类型是没有null值的。还有一个比较明显的问题是,数据库有主键和外键,而Java中仍然只能通过基本类型来对应字段值而已,无法规定Unique等特征,更别提外键约束、事务控制和级联操作了。另外,通过Java???????Object预设某Field值去取数据库记录,是否在这样的记录也是不能保证的。真的要设计到完全映射的话,Java的Static被所有对象共享的变量怎么办?在数据库中如何表现出来……??我们能看到大量的问题像一座座大山横在那些框架设计者们面前,他们并不是没有解决办法,而是从不同的角度去考虑,会得到很多不同的解决方案,问题是应该采取哪一种呢?甚至
您可能关注的文档
- TELNET调试SMTP.doc
- spring+jpa(hibernate)框架搭建.docx
- myeclipse中配置weblogic开发环境.docx
- 获取Request Token接口.doc
- Ibatis开发实例.doc
- Exchange2013新版功能介绍.pdf
- Exchange 2013 系统要求.pdf
- Exchange模式配置图例.pdf
- Exchange 2010 的管理 技巧.pdf
- Exchange Server备份与恢复.pdf
- exchange 2007 sp1 升级到sp2.pdf
- Exchange_Server_2010_For_Server_2008_R2_安装教程.pdf
- 台达电子集团-企业沟通平台-Exchange Server 2007.pdf
- ExchangeServer2007管理研究.pdf
- exchange server 2003 管理收件人和收件人策略.pdf
- android中的颜色设置.docx
- Windows Server 2008 R2 上部署 Exchange Server 2010.pdf
- Exchange2003迁移至Exchange2007及SMTP错误解决方法.pdf
- 曾垂鑫——Exchange日常管理之二十三:开启邮箱的诉讼保留功能.pdf
- FTS技术转移.docx
最近下载
- 四级检验工理论1.docx VIP
- 附件:江苏省建设工程监理现场用(第七版).docx VIP
- 钳工中级班练习(2021-10-27).docx VIP
- DB13_T1418-2011_高温闷棚土壤消毒技术规程_河北省.docx VIP
- 《牛的解剖》课件.ppt VIP
- 新收入准则下建筑业的全流程账务处理.pdf VIP
- DB11 971-2013 重点建设工程施工现场治安防范系统规范.pdf VIP
- 钳工中级班练习(2021-11-1).docx VIP
- 《医疗器械经营质量管理基本要求》DB14T 3291-2025.pdf VIP
- 2024年中考第三次模拟考试题:道德与法治(陕西卷)(解析版).docx VIP
原创力文档


文档评论(0)