`
jdlsfl
  • 浏览: 156814 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EJB学习之EntityBean(实体Bean)

阅读更多

序言:

那么首先我们要讲到的是EntityBean就是实体Bean

实体 Bean

   用于封装业务实体的EJB 组件

一.      数据源和连接池

数据源:

Data source , 获取数据的来源。

作用:Web服务器只要配置好数据源的名称后,程序可以直接调用数据源而得到数据库连接。当web服务器更换或数据库更换时候,只要数据源的名称不变,并不影响程序。

连接池:

用来存放数据库连接的容器。

作用:当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建连接和销毁连接的过程。

特点:现在假设:最大维持连接数是10,最大连接数是20,最大等待时间是10000(毫秒)
其过程:最开始在连接池中有10个连接(最大维持连接数),当有用户申请连接时,其将一个连接分配用户,直到连接池中的10个连接全都分配出去,当第 11个用户申请连接时,它将创建第11个连接并分配给该用户,直到把第20个连接(最大连接数)分配给第20个用户,当第21个用户申请连接时,它需要等待,直到前面的20个用户中某一个断开了连接,才会把那个连接分配给第21个用户,当用户断开连接时(第1120个连接),该连接不会立刻被释放而是需 要等待10000毫秒(最大等待时间),才被释放,当没有用户连接时,连接池内还保持10个连接。

演示weblogic配置数据源和连接池

二.      实例Bean

什么是实体Bean:

EntitiyBean是用来封装业务实体的持久存储的EJB组件.

它是业务实体

也是持久化对象

用来存储在数据库中的数据

业务概念/系统名词

为什么要使用实体Bean

在安全保护和事务上下文中执行

可重用性高

表示持久层数据对象

支持同时访问(并发)

什么是实体Bean的持久性:

Java 对象序列化

对象-关系映射

对象数据库

Java 对象保存在永久存储器中

使用 Oracle Microsoft SQL

Server 等关系数据库

存放整个对象

实体 Bean 是持久对象,即使应用程序结束,它仍然存在

持久性

何时使用实体Bean

1Bean应表示业务实体而非业务过程时;

2Bean的状态应该是持久的时候。

实体Bean类型

根据实体Bean的类型我们可以把它分为两类:

一、CMP   Container-Manager Persistence

二、BMP   Bean-Manager Persistence

CMP是由容器来管理Bean的添加、更新、查询和删除的操作,并由EJB容器自动启动事务。

使用CMP最大的特点是:

BMP是由开发者自己编写的代码来管理Bean的添加、更新、查询和删除的操作,并手动控制事务。

BMP的特点:手动编写数据库连接代码,

实体Bean编写规范

哪么如何才能编写一个EntityBean

EntityBean规范
                  |
                  |___Home
接口  提供添加、查找数据实体的方法
                  |
                  |___
远程接口  提供访问更新和得到数据方法
                  |
                  |___Bean
    数据库操作方法

ejbCreate() : 创建方法,调用该方法时会在数据库中插入新数据。实体Bean类可以有多个ejbCreate()方法,但参数不同。

ejbPostCreate() : 该方法在ejbCreate()方法执行完成之后调用。每个ejbCreate()方法都有一个对象的ejbPostCreate()方法,且会调用它来完成初始化后的操作。

ejbLoad() : 刷行数据库的实例对象的数据。容器可将持久层的数据加载到实体Bean的内存中。

ejbStore() : 用于将实体Bean的当前字段保存在持久层。保证了数据库中和高速缓存中匹配。

ejbRemove() : 用于从持久层删除一条记录。

findByPrimaryKey() ; 按主键去查找一个实例Bean的实例。

weblogic-cmp-rdbms-jar.xml 配置CMP配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE weblogic-rdbms-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic <st1:chsdate isrocdate="False" month="12" islunardate="False" day="30" year="1899">8.1.0</st1:chsdate> EJB RDBMS Persistence//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-rdbms20-persistence-810.dtd">

<weblogic-rdbms-jar>

  <weblogic-rdbms-bean>

    <ejb-name>Jobs</ejb-name>

    <data-source-name>pubs</data-source-name>

    <table-map>

      <table-name>jobs</table-name>

      <field-map>

        <cmp-field>jobId</cmp-field>

        <dbms-column>job_id</dbms-column>

      </field-map>

      <field-map>

        <cmp-field>jobDesc</cmp-field>

        <dbms-column>job_desc</dbms-column>

      </field-map>

      <field-map>

        <cmp-field>minLvl</cmp-field>

        <dbms-column>min_lvl</dbms-column>

      </field-map>

      <field-map>

        <cmp-field>maxLvl</cmp-field>

        <dbms-column>max_lvl</dbms-column>

      </field-map>

    </table-map>

    <automatic-key-generation>

      <generator-type>SQLserver</generator-type>

    </automatic-key-generation>

  </weblogic-rdbms-bean>

</weblogic-rdbms-jar>

    实体Bean调用过程

介绍完规范后,我们来讲解一下EntityBean被客户端的调用过程:

EntityBean不存在时由容器创建一个EntityBean,容器就会调用实体Bean类的setEntityContext()方法,将上下文传递给Bean EntityBean创建实例后即刻将实例放入实例池中。池中所有的实例都完全相同。容器调用ejbActivate()方法将实体Bean放入就绪池,容器就会给实体Bean实例指定一个标识。

什么情况下EntityBean的实例会从入池状态转换成就绪状态?

有两种情况:

第一种是客户端调用create()方法,容器调用ejbCreate()ejbPostCreate()方法

第二种是EJB容器调用ejbActive()方法。(当实体Bean处于就绪状态时,可调用业务方法。)

什么情况下EntityBean的实例会从就绪状态转换成入池状态?

第一种是当客户端调用remove()方法时,EJB容器调用ejbRemove()方法。

第二种是EJB容器调用ejbPassivate()方法。

最后,EJB容器删除池中的Bean实例就会调用unsetEntityContext()方法,因此实体Bean就不存在了。

分享到:
评论

相关推荐

    EJB3开发Entity

    EJB3开发Entity EJB3开发Entity

    EJB实体Bean学习

    EJB实体Bean的学习,增删改查.表有自动增长列

    Bean开发实例之三实体Bean开发实例

    对EJB中实体Bean的实例介绍

    EJB3.0之实体Bean的继承

    在EJB3.0中,实体Bean可以实现继承关系。 比如有个Person的实体bean,它有姓名和性别两个属性。 上帝和女娲造人的时候,造出两种人:Man和Woman。Man和Woman都是实体Bean,而且他们都继承Person。 单一表策略就是副...

    EJB详细解释

    EJB是sun的服务器端组件模型,最大... 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

    EJB3开发第一个无状态会话bean

    NULL 博文链接:https://diaochenlong2.iteye.com/blog/1846828

    EJB3.0入门经典

    EJB是sun的服务器端组件模型,设计... 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

    java面试题精选

    对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session ...

    EJB3.0高级教程

    EJB是sun的服务器端组件模型,最大... 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

    EJB测试题。pdf

    EJB测试题.EJB原理与运行环境,实体 BEAN(ENTITY BEAN)与 ORM 关系对象映射,EJB3.0 QL语言.等

    EJB3 PPT教程

    自己总结的EJB3上课教案,包括SessionBean、EntityBean、MDB、O/R映射与继承映射、持久化实体管理器、EJB3-QL、JTA等的教案.

    BMP-EJB.rar_EJB Entity

    一个数据库记录实体Bean实例:介绍编写CMP和BMP实体BEAN的方法。

    EJB3.0 简介

    EJB3.0中实体Bean,会话Bean,以及部分新特性的简单介绍

    JSF1.2+EJB3.0实现的一个项目实例

    ejb端 jsfejb3-ejb |-- src |-- org.qiujy.ejb3.dao 持久层DAO接口包 |-- org.qiujy.ejb3.dao.impl 持久层DAO接口实现类包(是ejb3中的会话Bean) |-- org.qiujy.ejb3.entity 实体域模型类包...

    JSF1+EJB2整合项目之login部分

    JSF+EJB EJB中无状态会话Bean调CMP实体Bean实现登录 EJB 是用JBuilder2005+weblogic8.X做的 JSF是用Eclipse3.2+tomcat5.5 注意:LoginDemoModule.jar 和 weblogic.jar weblogicservices.jar 这三个包...

    EJB3.0 实例教程 -- 切片1

    6.4 单表映射的实体BEAN..38 6.5 持久化实体管理器ENTITYMANAGER..43 6.5.1 Entity获取find()....43 6.5.2 添加 persist().........43 6.5.3 更新 Merge() .........44 6.5.4 删除 Remove() .......44 6.5.5 执行 ...

    EJB3.0 实例教程 -- 切片2

    6.4 单表映射的实体BEAN..38 6.5 持久化实体管理器ENTITYMANAGER..43 6.5.1 Entity获取find()....43 6.5.2 添加 persist().........43 6.5.3 更新 Merge() .........44 6.5.4 删除 Remove() .......44 6.5.5 执行 ...

    J2EE中文版指南 CHM格式 带全文检索

    与会话Bean、EntityBean的不同之处 46 何时需要Message-DrivenBean 47 5.定义客户端访问接口 47 远程访问 47 本地接口 48 Local接口和CMR(Container-Managed RelationShips) 49 两种访问方式的抉择 49 性能和访问...

    JBOSS使用指南

    文档目录: 一.JBOSS入门 1.下载和安装JBoss 2.JBoss的目录结构 3.启动服务器 4.JMX控制台 5.停止服务器 6.JBoss中的部署 二.JBOSS的配置 1. JBoss日志设置 2. web 服务的端口号的修改 ...4.实体Bean(Entity Bean)

    组合实体模式

    组合实体模式(Composite Entity Pattern)用在 EJB 持久化机制中。一个组合实体是一个 EJB 实体 bean,代表了对象的图解。当更新一个组合实体时,内部依赖对象 beans 会自动更新,因为它们是由 EJB 实体 bean 管理...

Global site tag (gtag.js) - Google Analytics