JBuilder9+Weblogic7实战篇Entity Bean运用(四)

服务器测试之GPU基础汇总 GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。一个专门的图形核心处理器。GPU是显示卡的“大脑”,决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。可以形象的理解为90%的ALU(运算单元),5%的Control(控制单元)、5%的Cache(缓存单元)GPU的设计原理——总结为大量的简单运算。 阅读详情

JBuilder9+Weblogic7实战篇

ENTITY BEAN的运用(四)

                                                                      作者:黄 凯        

E_mail:hk_sz@163.com

 

七、通过Session Bean访问Entity Bean

    在前面给出的Entity Bean实例都是通过java客户端程序直接访问Entity Bean(通过Entity Bean的远程接口),在实际的应用系统开发中通常不采用这种做法,经常采用的是这样一种做法:建立一个Session Bean,该Session Bean中封装对Entity Bean的访问。而且访问时通过Entity Bean的本地接口进行以提高性能,客户端不与Entity Bean直接打交道,客户端通过Session Bean完成对Entity Bean的操作。这中做法其实是遵循了一种设计模式:Facade设计模式。

7.1 EJB引用

    在一个EJB中访问其他EJB,例如Session Bean facade要访问Entity Bean student,可以直接在facade中用“硬编码”实现,即在facade中通过Student的JNDI名字找到Home对象,然后获得对外接口(Remote接口或Local接口),完成方法调用。这种方式的缺点是显而易见的,因为这两个EJB被紧紧绑在一起,例如student有什么改动,例如改名字,那么facade就必须改代码(这也是为什么在《Entity Bean的运用(二)》中需要重新建立一个TestClient的原因)。

    J2EE采用这样一种方式解决此问题:在facade的部署描述文件中定义一个EJB引用,该项描述了对另一个EJB的引用,在facade的代码中只使用EJB引用的名字,EJB引用的名字是不变的,但是它所引用的内容是可变的,参见以下代码:

   <weblogic-enterprise-bean>

       <ejb-name>facade</ejb-name>

          <reference-descriptor>

             <ejb-reference-descriptor>

                 <ejb-ref-name>student</ejb-ref-name>

                 <jndi-name>Student</jndi-name>

             </ejb-reference-descriptor>

          </reference-descriptor>

       <jndi-name>facade</jndi-name>

     </weblogic-enterprise-bean>

     建立了EJB引用后,facade可以通过此引用获得要访问的EJB student的接口,参见以下代码:

    Context context = new InitialContext();

    Object ref = context.lookup("java:/comp/env/student");

    studentHome = (StudentHome)ref;

    在使用EJB引用时,作为lookup方法参数的完整的JNDI名字是“java:/comp/env/”+ EJB引用名,例如名为student的EJB引用,对应完整的JNDI名字是“java:/comp/env/student”。

7.2 EJB引用实例

7.2.1打开《Entity Bean的运用(一)》中建立的comSample工程,新建一个名为facade的Session Bean(可参看《SESSION BEAN篇》)。修改该Bean的如下信息:

    ★ Bean name: facade

★ Interface: remote

★ Session type: Stateless

7.2.2 在文档窗口“EJB Designer”中用鼠标右键单击facade,选择Open DD Editor菜单项。

7.2.3 在“DD Editor”界面中单击下方的EJB Local References选项卡。

7.2.4 在“EJB Local References”的设置界面中,单击Add按钮,然后在Name项后输入EJB引用的名字student,选中IsLink复选框(如果要引用的EJB是位于同一Jbuilder工程中则选种此项),Link项选择Student(要引用的EJB),其他项采用系统自动的设置即可。

7.2.5 在facade中增加一个方法getStuInfo(),该方法的功能是找到与参数(代表stuid)对应的Entity Bean Student,然后调用Student的方法getStuid()和getStuname()。该方法的属性如下:

    ★ Method name: getStuInfo

★ Return type: String

★ Input parameters: String stuid

★ Interface: remote

7.2.6 在facade的Bean类中加入访问Student的代码。要访问Student,首先要获得Student的Home对象,这可以通过EJB引用获得。获得Home对象这部分代码要放在facade的ejbCreate()方法和ejbActivate()方法中(即只要facade的实例一被建立或激活,就会获得Student的Home对象)。获得Student的Home对象后,在getStuInfo()方法中通过Home对象得到Student的本地接口(Local Interface),然后通过本地接口调用Student的方法。用以下代码替换facadeBean.java的代码:(灰色代码部分为手工添加的)

package cmpsample;

 

import java.math.*;

import javax.ejb.*;

import javax.naming.*;

 

public class facadeBean

    implements SessionBean

{

    SessionContext sessionContext;

    public Student student = null;

    private StudentHome studentHome = null;

    public void ejbCreate() throws CreateException

    {

        try

        {

            Context context = new InitialContext();

            Object ref = context.lookup("java:/comp/env/student");

            studentHome = (StudentHome) ref;

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

    }

 

    public void ejbRemove()

    {

        /**@todo Complete this method*/

    }

 

    public void ejbActivate()

    {

        try

        {

            Context context = new InitialContext();

            Object ref = context.lookup("java:/comp/env/student");

            studentHome = (StudentHome) ref;

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

 

    }

 

    public void ejbPassivate()

    {

        /**@todo Complete this method*/

    }

 

    public void setSessionContext(SessionContext sessionContext)

    {

        this.sessionContext = sessionContext;

    }

 

    public String getStuInfo(String stuid)

    {

        String strStu = null;

        try

        {

            student = studentHome.findByPrimaryKey(new BigDecimal(stuid));

            strStu = "The studentID is " + student.getStuid() + " Name is " +

                student.getStuname();

        }

        catch (Exception e)

        {}

        return strStu;

    }

}

7.2.7 重新编译EJB module,生成Cmp.jar文件,并部署到Weblogic Server上。

7.2.8 新建facade的客户端程序facadeTestClient1.java,利用该客户端程序访问facade的getStuInfo()方法。修改该客户端程序的main()方法如下:

    public static void main(String[] args)

    {

        facadeTestClient1 client = new facadeTestClient1();

        client.create();

        client.getStuInfo("2");

    }

7.2.9 编译运行该客户端程序,验证结果。

 

参考

电子工业出版社   《J2EE应用开发(Jbuilder+Weblogic)》

 

我的文章首发牛耳论坛(www.newer.com.cn/bbs)和程序员论坛(www.youkuaiyun.com),欢迎转载,不过,请保留作者以及修订者的名字,谢谢。

 

让 IF 更好读:在 ABAP 里尽量使用正向条件的实战指南 摘要:SAP系统开发中,代码可读性与可维护性的关键往往在于条件判断的写法。Clean ABAP风格指南建议尽量采用正向表达的条件判断,如使用has_entries = abap_true而非否定式写法。正向表达能降低理解成本,避免"否定的否定"带来的逻辑混乱,但不应为追求正向而制造空分支。在团队协作中,正向条件更利于代码评审和测试覆盖,建议通过工具检查和智能评审确保规范执行。落地时可关注变量命名正向化、避免空分支、主流程清晰展开等要点,以提升长期维护效率。 阅读详情

相关推荐

IIS - 会话cookie中缺少HttpOnly属性

不啰嗦,我们直接开始! 先进行常规设置 打开配置编辑器 选中图中节点,将httpOnlyCookies设置为true 然后。。。不起作用。。。 换种方式 通过配置出站规则getcookie添加HttpOnly 在Web.config中添加如下出站规则 <rewrite> <outboundRules> <rule name="Add HttpOnly"> <match serverVa.

。 21万+

Java:bean、entity、model、domain区别与作用

暂无

qq_45507768的博客 1万+

最邻近点对问题(Closest-Pair Problem):二维的分治解法详解

低维时,最邻近点对问题可以利用分治求解。但是网络上相关资料良莠不齐,对于3维甚至难有有价值的参考。最近恰巧梳理了123维最邻近点对问题的相关知识,故在此分享。这是该系列的第二篇,介绍二维情况的分治解法。

Carl_Rabbit的博客 1万+

【OOP】Bean、POJO、entity、model

解释 1. Bean Bean,应用在Spring上,所有被Spring管理的类对象就可以将其称作为Bean。 它不仅仅可以包括对象的属性以及get,set方法,还可以有具体的业务逻辑。 2. entity 顾名思义,实体,即指数据库表对应到实体类的映射。 3. POJO 普通java对象,除了属性和get、set方法外不包含具体的业务逻辑方法,和Entity区别在于没有和数据表中字段一一对应。 4. model model的字段要大于entity的字段,model主要用作前端页面数据展示,属性,字

It’s All Uphill From Here 1498

【鸿蒙实战开发】HarmonyOS申请调试签名证书过程

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

HarmonyOS_002的博客 3561

从SFF-8087到SFF-8643:详解服务器硬盘背板连接线缆的演变与实战接线

本文深度解析了服务器硬盘背板连接技术从SFF-8087到SFF-8643的演进历程,重点介绍了SAS、SATA和U.2接口的技术特点与实战接线方案。通过对比不同连接器标准的物理特性和电气规范,提供了混合环境下的线缆选择策略和常见故障排查指南,帮助IT专业人员优化存储系统性能与稳定性。

weixin_30603633的博客 278

JBuilder9+Weblogic7实战篇之Entity Bean运用篇(一)

JBuilder9+Weblogic7实战篇ENTITY BEAN的运用(一)                                                                             作者:黄 凯        E_mail:hk_sz@163.com 一、Entity Bean 的基础理论1.1 什么是Entity Be

kanaima的专栏 1401

大数据运维面试题及答案

1. 架构组成:- 2 个 NameNode(Active 活跃节点、Standby 备用节点),实时同步元数据(通过 JournalNode 集群,默认 3 个节点,存储 edits 日志,Active 写入、Standby 读取以保持元数据一致);- 容错性强:通过 RDD 的 “ lineage(血缘)” 机制,任务失败时可快速重算,无需从头执行。:集群 “大脑”,管理元数据(文件目录、块位置),实时响应客户端请求,数据存于内存,元数据镜像(fsimage)和编辑日志(edits)持久化到磁盘;

weixin_42795092的博客 908

bean包、entity包、model包、domain包的区别

entity entity 的意思就是实体的意思,所以也是最常用到的,entity 包中的类是必须和数据库中的表相对应的,比如说:数据库有个 user 表,字段有 bigint 类型的 id,varchar 类型的姓名,那么 entity 包中的 User 类也必须是含有这两个字段的,且类型必须一致。不能数据库存的是 bigint 类型,User 类里的对应属性是 String 类型。这样做的好处是实体类和数据库保持一致,当用到 hibernate 或 mybatie 框架来操作数据库的时候,操作这个实体类

liaowenxiong的博客 5365

55、宇宙微波背景辐射望远镜及其光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统的设计与优化。内容涵盖折射与反射光学系统的特性、旁瓣控制技术、气球与地面观测系统的对比、探测器阵列的发展、光学系统设计流程以及不同观测场景下的光学系统选择。同时,文章展望了CMB望远镜光学系统的未来发展趋势,包括技术创新、多频段观测、国际合作与大型项目等。通过系统性的分析与对比,为CMB研究提供了全面的技术支持与理论基础。

f9g0h的博客 145

基于Vivado MIG IP核的DDR3读写实验(top_rom_ddr/ddr_top)

一、前言 关于Vivado MIG IP核详细配置可以参考我之前的文章:基于Vivado MIG IP核的DDR3控制器(DDR3_CONTROL) 关于MIG IP核的用户端的接口时序可以参考这篇文章:XILINX 的 MIG IP(非AXI4)接口时序以及控制 二、实验内容 本次实验的内容主要是通过MIG IP核向DDR3读写数据,DDR3的接口时序由ddr_top模块提供: ddr_top模块的数据来源是wr_fifo,wr_fifo的数据实际来自top_sd_photo模块(本实验仿真

耐心的小黑的博客 3027

第6课 实体Bean(Entity Bean)——Java持久化JPA

6.3 控制实体Bean的生命周期 与会话Bean类似,实体Bean也有自己的生命周期,分别对应不同的状态。下面我们首先来讲解实体Bean的状态和生命周期事件。 l         实体Bean的状态:新实体、持久化实体、分离实体、删除实体。 l         实体Bean的事件:@PostLoad、@PrePersist和@PostPersist、@PreUpdate和@PostUpd...

zzc1684的博客 542

智能车图像处理21-进阶篇13--正入十字补线2

这篇文章主要的正入十字补线与1基本相同,主要防止图像中双十字的问题。

taiyuezyh的博客 2033

JBuilder9+Weblogic7实战篇Entity Bean运用(四) (转)

JBuilder9+Weblogic7实战篇Entity Bean运用(四) (转)[@more@]JBuilder9+webLOGIC7实战篇XML:namespace prefix = o ns = "urn:schemas...

csd3176的博客 148

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

实战JBuilder7+WebLogic7(续Entity Bean)

实战JBuilder7+WebLogic7存取MS SQL Server2000(一)刘晓巍: liuxiaowei2000@sina.com  第一次写文章,希望大家多多捧场,本文完全根据我的个人经验所写,如有错误,恳请大家指正!JBuilder7+WebLogic7 的配置假设Jbuilder7和WebLogic7安装完毕,操作系统为:windows2000 serve

liuxiaowei的专栏 1272

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JBuilder9+Weblogic7实战篇Entity Bean运用(三)

JBuilder9+Weblogic7实战篇ENTITY BEAN的运用(三)                                                                      作者:黄 凯        E_mail:hk_sz@163.com 六、建立Entity Bean的关系6.1 Entity Bean的关系描述   

kanaima的专栏 1222

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JBuilder9+Weblogic7实战篇Entity Bean运用(二)

JBuilder9+Weblogic7实战篇ENTITY BEAN的运用(二)                                                                             作者:黄 凯        E_mail:hk_sz@163.com五、使用EJB QL开发查询5.1 什么是EJB QL    在关系

kanaima的专栏 1184

JBuilder9+Weblogic7实战篇ENTITY BEAN的运用

五、使用EJB QL开发查询5.1 什么是EJB QL    在关系数据库的操作中查询是经常使用的,主要是通过select语句完成的。Entity Bean作为代表数据库中数据的持久性组件也同样需要查询操作,即能够找到符合某一查询条件的Entity Bean的实例。Entity Bean的查询操作是通过定义finder()方法完成的。对于CMP,定义finder()方法仅仅是声明一个方法,指明fi

Arias的专栏 1214

JBuilder9+Weblogic7实战篇Entity Bean运用(三) (转)

JBuilder9+Weblogic7实战篇Entity Bean运用(三) (转)[@more@]JBuilder9+webLOGIC7实战篇XML:namespace prefix = o ns = "urn:schemas...

csd3176的博客 175

JBuilder9+Weblogic7实战篇之Entity Bean运用篇(一) (转)

JBuilder9+Weblogic7实战篇之Entity Bean运用篇(一) (转)[@more@]JBuilder9+webLOGIC7实战篇XML:namespace prefix = o ns = "urn:schem...

cuiji1279的博客 175

如何在Jbuilder9中使用SQLServer JDBC驱动

如何在Jbuilder9中使用SQLServer JDBC驱动                                                               修订者:黄 凯        E_mail:hk_sz@163.com前 言今天有位仁兄问我为什么“在写CMP时,定义JDBC驱动程序,好多选项目是红色的,不能使用....,将驱动添加到项目的Re

kanaima的专栏 1588

Jbuilder5+Weblogic 6.1sp1 Entity Bean的制作

Jbuilder5+Weblogic 6.1sp1 Entity Bean的制作  本文假设使用者已经正确的安装了jbuilder5和BAS4.5 。安装Weblogic   本例中用的是Weblogic 6.1sp1,采用默认方式安装,安装目录为C:/bea 系统密码设为12345678 .  打开Jbuilder,在Tools菜单下选择Enterprise Set

newroc的专栏 969

借助JBuilder开发多种关联的Entity Bean

标题:借助JBuilder开发多种关联的Entity Bean 浏览次数: 234 时间:2003-11-13作者:王峰 (dev2dev ID: anson.wang)BEA系统(中国)有限公司 渠道部技术顾问要开发多种关联的Entity Bean,首先就要了解Entity Bean中定义的几种映射关系,它们分别是One to One、One to many、many to many。下

zgbsoap的专栏 1039

实战JBuilder7+WebLogic7存取MS SQL Server2000(一)

实战JBuilder7+WebLogic7存取MS SQL Server2000(一)刘晓巍: liuxiaowei2000@sina.com  第一次写文章,希望大家多多捧场,本文完全根据我的个人经验所写,如有错误,恳请大家指正!JBuilder7+WebLogic7 的配置假设Jbuilder7和WebLogic7安装完毕,操作系统为:windows2000 serve

liuxiaowei的专栏 1266

AI应用算力成本飙升?从API计费到模型路由的降本实战指南

AI应用运行成本正成为开发者最关注的问题之一。随着大模型API调用规模增长,token消耗与GPU推理成本逐渐超过传统服务器开支。理解算力供需结构、API计费模式变化,是控制成本的前提。缓存命中、模型蒸馏、智能路由和混合部署等工程手段,能显著降低单次请求开销。从模型选择到prompt设计,构建可观测的成本监控体系,即使面对头部厂商扩张带来的价格波动,也能保持应用的经济可持续性。

cuiji1279的博客 435
上一篇: JBuilder9+Weblogic7实战篇Entity Bean运用(三)
下一篇: SQLServer2000 JDBC驱动的完整安装及测试说明
kanaima
博客等级 码龄25年 16粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值