当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 下篇:可管理的POJO持久性 在Java虚拟机(JVM)里面,所有数据都被建模,并且被封装在树结构的类和对象中。
 

 

 ·ejb 3.0的三大类型详解    »显示摘要«
    摘要:无论你创建bean会话是为了执行特定任务,还是把表映射到实体bean以更新数据,都可以使用普通的java对象和接口来完成这些工作,并且可以通过在业务方法中使用注释,把方法提供给客户端。 enterprise javabean (ejb) 是可重用的、可移植的 j2ee 组件。ejb 由封装业务逻辑的方法组成。譬如说,ejb 可能有这样的业务逻辑:包含了更新数据库中客户数据的方法。众多远程和本地......
    摘要:创建web应用的配置文件 对于struts应用,它的配置文件web.xml应该对actionservlet类进行配置,此外,还应该声明web应用所使用的struts标签库,本例中声明使用了三个标签库: struts bean、struts html和struts logic标签库。例程1为web.xml的源代码。 例程1 web.xml<?xml version="1.0" ......


用EJB 3.0简化企业Java开发(下)

下篇:可管理的pojo持久性

在java虚拟机(jvm)里面,所有数据都被建模,并且被封装在树结构的类与对象中.然而,在后端关系数据库中,数据被建模成关系表,它们通过共享的键字段相互关联起来.同一数据却有两个不同的视图,这给企业java的开发人员带来了挑战:如果你要把数据保存到持久性数据存储区,或者从持久性数据存储区获取数据,就必须在对象与关系表示之间来回转换数据,这个过程就叫作对象-关系映射(orm).在java ee(java企业版,以前叫j2ee)中,可以通过两个方法来完成对象-关系映射.

● 人工方法:使用java数据库连接性(jdbc)直接处理持久性——这个简单的解决方法适用于简单的应用程序.jdbc api的类紧密地按照关系数据库里面的表.行与列进行建模.但必须在应用程序的内部对象模型与jdbc对象模型之间进行人工转换,如果应用程序的内部模型已经类似二维关系表,采用jdbc是最佳方法.

● 自动方法:可以把orm任务交给框架去处理.框架通常提供了可以处理任何数据对象的api.通过这个api,可以保存.获取及查找数据库.框架在后台完成对象-关系的转换.因为针对特定关系的sql查询不适合对象接口,orm框架通常定义了自己的查询语言,可以为当前的关系数据库自动生成正确的sql语句.对数据模型复杂的应用程序而言,基于框架的方法可以节省许多时间,并且减少出错.

orm 框架

ejb 实体bean是java ee中的“官方”orm解决方案.不过在ejb1.x与2.x中,实体bean使用起来非常困难,这有两个原因:

● ejb 1.x与2.x实体bean必须符合严格的组件模型.每个bean类必须实现本地接口与业务接口.它们必须从某些抽象类继承而来,还要实现所有方法,即便许多方法是空的.有了这样一种严格的组件模型,就不可能利用ejb 1.x与2.x实体bean来构建面向对象的数据模型.

● ejb 1.x与2.x容器需要极其冗长的xml配置文件把实体bean映射到关系数据库里面的表.那些文件非常冗长,还容易出错.

简而言之,ejb 1.x与2.x实体bean是一种设计拙劣的orm框架,既满足不了java数据对象模型的需求,也满足不了关系表数据模型的需求.出于对ejb 1.x与2.x实体bean的不满,开发人员寻求orm的其他方案.在实际环境中,采用开放源代码的hibernate(由jboss公司开发)与oracle公司的toplink是两个最成功的java orm框架.hibernate与toplink都基于pojo:它们不依赖任何预定义的组件模型.相反,它们获得pojo数据对象(采用简单的javabean格式)后,会自动解释如何把这些数据对象以及它们之间的关系映射到关系数据库.通常,一个javabean类映射到一张数据库表,类之间的关系通过表里面的外来键字段进行映射.可以在简单.直观的xml配置文件里面指定orm元数据,譬如与javabean类相对应的表名以及与属性相对应的列名.可以通过框架中的工具类(如hibernate中的session类)来操作这些pojo(譬如保存.获取及查找).
...   下一页

    摘要:1、html无论是独立的html,还是其他程序生成的,如servlet等,注意在最终的html的和之间必须加入meta标签,用来指定html中输入字符的编码,如:  <head> <meta http-equiv="content-type" content="text/html; charset=gb2312"> <title>测试ge......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE