网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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使用XML作为持久存储介质实现.
.java连接常见数据库的连接字符串.
.关于 java.exe 是如何载入 JVM.
.SCJP:“菜鸟”也能玩Java.
.组织SWT/JFace控件的利器:Layout.
.JDK 1.5 新功能使用实例之Generi.
.利用Java芯片实现信息家电.
.[JAVA100例]009、异常的捕获和实.
.用ChoiceFormat将数字与字符串联.
.eval 方法.
.Java EE 5规范横空出世.
.Java初学者备忘录.
.新手入门:使用 AppFuse 的七个理.
.Struts源码研究-Action-Input属性.
.ReadLine 方法.
.Java 技巧:用 Java 实现回调例程.
.JBOSS的集群策略分析.
.RCPII:扩展通用工作台补充—小的.
.throw 语句.
.Eclipse开发J2ME手机程序之简介.

EJB3 实体组件在 J2SE 中的使用

发表日期:2008-1-5


前言:

  越来越多的企业将越来越多的业务转向自动化或半自动化平台,他们通过这个过程,进一步优化企业资源与治理方法,另一方面大大提升业务执行的效率与精确性。因此软件工程所需解决的实际问题,业务越来越复杂,规模越来越大,新旧系统配合使用的需求越来越多。软件工程技术和其它领域的生产力发展,就这样相互促进!

  对系统进行合理分解,是软件工程(也是其它领域)降低系统复杂性的常用手段和唯一的基本方法,今天的企业级应用系统一般由如下部份组成:
    1. 用户交互模块,
    2. 基于行业规范的业务中间件,
    3. 基于软件工程技术规范的系统中间件,
    4. 软硬件基础平台组成。

  以上其实是由上到下的 4 个层次,系统复杂度被分解到各层次的各个组件中。系统中间件就是其中对软件技术进行归纳的一个层次,该层次将一些常用的系统功能,从业务逻辑中剥离出来,并分门别类。本例即涉及系统中间件的使用。

  对中间件而言,开发人员只需要熟悉它们的使用方法,然后运用 "拿来主义",直接拿来,合理使用即可,是相当不错的开发资源。今天 "拿来" 的是 EJB3 持久层规范的 Hibernate 实现版本。交互代码就是在主程序中对规范中的接口的调用,很简单的示例。

  应该在这里提出"配置文件" 这一设计模式了 ---- 一定有人发笑:配置文件与设计模式何干?在系统维护过程中,当系统需要灵活变更组件或策略时,以配置文件代替硬编码来处理这种 "替换",大大减免了实现该逻辑的代码重新经历 "修改,编译,测试,发布" 等软件过程的机率 (配置文件中的内容需合理规划,否则将导致复杂性上升。 EJB 2.x 的部署描述文件就是最好佐证。 Log4J 配置文件则堪称典范)。 配置文件在组件装配方面更是功勋卓著。本文示例包含2个配置文件。

  诸多赘述,只是希望能使入门级朋友有个思想预备:为何本文示例并非一段代码,而由这么多松散的部份组成。下面言归正传。

  基础平台:

  • IBM T23 / PIII-M 1.13G/ 512M / 5400 rpm, 8M
  • Windows 2003
  • Postgresql 8.1.x
  • JDK 5.0 - update 4 ( 或 JRE 5.0 - update 4)

  中间件:

  • Hibernate-EntityManager 3.1beta6 :
    说明:这是 EJB3 持久层规范的 hibernate 实现。(若未集成 hibernate core, 必须另行获取。)

  • Postgresql 8.1.x JDBC Driver
    说明: postgresql 客户端 JDBC 驱动程序。

     
  • 以下可选内容源于 www.apache.org :
    common-dbcp: JDBC 数据源连接池中间件( hibernate 缺省情况下采用C3P0),依靠于 :
    common-collections
    common-pool

    说明: hibernate core 对 JDBC 连接池的使用处理得相当好,当代码在乎数据库连接的性能时, hibernate core 会根据配置文件 persistence.XML 中的相关配置,透明地配备连接池;若不需要该连接池,将配置文件中与相关的内容取消即可, hibernate core "自适用" 这种情形。
  开发工具:
  • Eclipse 3.1.x 以上版本
  • Eclipse WTP
  • Hibernate Tools
  • Subclipse: subversion 的 eclipse 客户端插件
  开发步骤:

  导读:

  本例的操作内容为:1,清除数据库中各表内容; 2,向数据库添加用户 hedan, 角色 friend, 并将新角色赋予新用户; 3,查询数据库中所有用户及其角色,并将之一一打印。这 3 个步骤分别对应 TestIt 类中的 removeAll, insert, query 三个方法。
下文中步骤 3、4 和 5 的内容是与 EJB3 – Persistence 规范相关的要点所在(请阅读这些小篇幅的源文件或配置文件中的说明),其它内容相对次要。

  本文假设读者能熟练使用 Eclipse JDT 及 Hibernate Tools, 并熟悉 POSTGRESQL 的基本操作。
  1. 创建 Java project

  2. 将 JDBC 驱动程序及 Hibernate EntityManager 相关类库的 Jar 压缩包添加到 Project 的 Libraries 中

  3. 建数据库 , 标准 SQL 脚本如下( 持久层配置文件中所有数据库名称为 testdb, 数据库帐号/密码分别为 test/test,可按需修改 ):
    CREATE TABLE _USER
    (
    USERID INT PRIMARY KEY,
    USERNAME VARCHAR(64) NOT NULL DEFAULT '',
    COMMENT VARCHAR(256)
    );

    CREATE TABLE _ROLE
    (
    ROLEID INT PRIMARY KEY,
    ROLENAME VARCHAR(32),
    COMMENT VARCHAR(128),
    CONSTRAINT NQ_ROLE UNIQUE(ROLENAME)
    );

    CREATE TABLE _USERROLE
    (
    USERID INT,
    ROLEID INT,
    CONSTRAINT PK_USERROLE PRIMARY KEY(USERID, ROLEID),
    CONSTRAINT FK_UR_USER FOREIGN KEY(USERID) REFERENCES _USER(USERID),
    CONSTRAINT FK_UR_ROLE FOREIGN KEY(ROLEID) REFERENCES _ROLE(ROLEID)
    );


上一篇:Java Web应用中如何实现任务有效调度 人气:574
下一篇:系统托盘气泡提示和右键菜单的实现 人气:1112
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐