动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.垃圾自动收集系统指导(2).
.Think in java 3rd 中文版3.
.JSF ( JavaServer Faces ) 介绍.
.开源面向对象数据库db4o之旅:初识.
.论两个关于*.hbm.xml配置异常的解.
.RMS 从入门到精通系列连载之一.
.Java5.0多线程编程实践.
.菜鸟初学Java的备忘录(二).
.Flex开发步骤——配置过程总结.
.将eclipse项目导入到Netbeans ID.
.JSF是初学者进入Java Web世界的跳.
.领略java.util.Canlendar的优点.
.Weblogic上配置Hibernate为JNDI.
.2. Building Model Components.
.Java编程应用:使用动态代理实现.
.Eclipse主要插件Lomboz介绍(4)_C.
.在eclipse中如何用JDK的帮助文档.
.Java学习过程的一些重点(一).
.基于JDBC的数据库连接池技术研究.
.保存Java程序状态及设置之Proper.

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

发表日期:2008-1-5 |


下篇:可治理的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(譬如保存、获取及查找)。

EJB 3.0建立在 Hibernate和TopLink的思想和成功这一基础上。它为Java EE提供了标准的POJO ORM框架。另外,较之现有的POJO持久性解决方案,EJB 3.0有两项重要创新:

● EJB 3.0让开发人员可以直接在POJO代码中注释映射信息,而不是使用XML文件来指定ORM元数据。譬如说,你可以用注释来指定与每个JavaBean属性相对应的关系列名。读者会在本文后面看到更多的示例。注释使得映射更直观,也更轻易维护。

● EJB 3.0为实体bean定义了新的存档格式。每个存档定义了持久性上下文,后端数据库和ORM行为各使用独立的一组配置。本文会在后面讨论持久性上下文。

现在,我们不妨通过几个简单的示例来看一下EJB 3.0是如何实现POJO ORM的。

映射简单对象

在EJB 3.0中,每个实体bean都是JavaBean样式的简单类。为了告诉EJB 3.0容器这个类应当进行映象以实现持久性,应当用@Entity来注释这个类。

每个实体bean类映射到关系数据库表。默认情况下,表名与类名相对应。可以使用@Table注释,为该类指定另一个表名。bean类的每个JavaBean属性映射到表中的列。默认情况下,列名就是属性名。可以通过为属性的设置方法添加@Column注释,来改变这种默认关系。下面是EJB 3.0实体bean类的简单示例:

@Entity

// @Table (name="AlternativeTableName")

public class Person implements Serializable {

 protected int id;

 protected String name;

protected Date dateOfBirth;

public void setId (int id) {

this.id = id; }

@Id(generate = GeneratorType.AUTO)

public int getId () {

return id; }

public void setName (String name) {

this.name = name; }

// @Column (name="AlternativeColumnName")

public String getName () {

return name; }

public void setDateOfBirth (Date dateOfBirth) {

this.dateOfBirth = dateOfBirth; }

public Date getDateOfBirth () {


上一篇:中文的版用JavaScript实现超酷的“网页时钟” 人气:504
下一篇:用JBuilder实现类似Visual Studio的宏扩展功能 人气:500
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-11-22 CMS001 v2.2 bulid 081122 Beta
2008-11-22 腾讯小说小偷 v5.0 20081113
2008-11-22 iestore网上商店系统 v1.0.7.0
2008-11-22 GKEE CRM客户管理系统 v1.2
2008-11-22 shopd1网店系统 v1.3
2008-11-22 翎风个人主页管理系统 v1.5
2008-11-22 开良狗狗影视搜索小偷 v1.1
2008-11-22 XtreMedia
2008-11-22 互联网数据分享应用平台 v1.0.0
2008-11-21 傲游(Maxthon) 2.1.5 正式版
2008-11-21 Skype v3.8.0.188 Final
2008-11-21 AirPlay OpenAlpha 2008.11.20
2008-11-21 屏幕文字抓取工具 DWMouse1.3.510
2008-11-21 Vista一键还原(Vista Ghost)1.
2008-11-21 SP Photo Fix照片修改1.2破解版
2008-11-21 QQ腾讯聊天工具 v1.2正式版
2008-11-21 FlightTrack航班信息v1.0破解版
2008-11-21 RealPiano仿真钢琴1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成