Вы находитесь на странице: 1из 22

CIS 764 Database Systems Engineering

L7. ADF + EJB Context: Oracle Application Development Framework but only EJB homework for now.

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

Oracle Fusion
http://en.wikipedia.org/wiki/Oracle_Fusion_Middleware the whole middleware suite application server (including OC4J) BEPL manager (business process execution language) business rules system messaging service ADF <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< JDeveloper Toplink Forms services Business Intelligence tools (monitoring, mining, analysis) Portal & portlets Identity & single sign-on others.. the integration of eBus components (as PeopleSoft) into a SOA.

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

eWeek.com January 19, 2006 The lack of detail in Oracle's Fusion Application presentation suggests to some industry experts that the company is not at the halfway point in developing a merged suite.

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

ADF
http://en.wikipedia.org/wiki/Oracle_Application_Development_Framework
included in JDev, ADF is the conceptual model, components, and wizards possible model components: EJB, WebService, TopLink, ADF_business_components controller: Struts, JSF (Java Server Faces) view: Swing, JSP, JSF

all components conf via XML, for easy reconfig, reuse.

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

ADF Index Page http://www.oracle.com/technology/products/adf/index.html

ADF Overview,
http://www.oracle.com/technology/products/jdev/collateral/ papers/1013/adf_10.1.3_overview.pdf 11 pages, 2006

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

GUI components Swing only in Java apps (not in server)

JSP .. Weak components (button, form ),


not automated data binding. JSF . Web components , w data binding . ADF Faces Oracles own extensions of JSF and with DB binding for use in apps.

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

http://www.oracle.com/technology/products/adf/learnadf.html ADF Learning Center:


two tracks: * IDE Fusion JSF, ADF Faces, ADF Model, ADF Business Components http://www.oracle.com/technology/products/jdev/viewlets/1013/ ADF_Overview_Viewlet_viewlet_swf.html an animation and SC example

* Java programmer. JSF, ADF Faces ,ADF Model , EJB3.0, TopLink

Fall 2007

http://www.cis.ksu.edu

CIS 764 Database Systems Engineering

http://www.oracle.com/technology/obe/ADF_tutorial_1013/ADF_tutorial.pdf
170 pp pdf for sample application, ServiceCompany .. Service requests for large appliances

http://www.oracle.com/technology/obe/ADF_tutorial_1013/index.htm
index page for the following:

http://www.oracle.com/technology/products/jdev/samples/srdemo.html
completed SC demo web app (required JUnit extension to JDev)

http://download.oracle.com/otn_hosted_doc/jdeveloper/1013/adfdevguide.pdf
674 pp ADF guide !

Fall 2007

http://www.cis.ksu.edu

10

CIS 764 Database Systems Engineering

Assignment: just listen to the following Steve Muench , ADF weblog


http://radio.weblogs.com/0118231/stories/2005/06/24/jdeveloperAdfScreencasts.htm l

Select #4: ( animated demo w audio) Creating a Databound, Master/Detail Swing Panel Using JGoodies Form Layout http://www.oracle.com/technology/products/jdev/tips/muench/screencasts/ simplejgoodies/binding_demo.html?_template=/ocom/ocom_item_templates/print

Fall 2007

http://www.cis.ksu.edu

11

CIS 764 Database Systems Engineering

EJB3
POJO + Annotations => EJB
EJB 3.0 Resources http://www.oracle.com/technology/tech/java/ejb30.html Introduction: http://www.oracle.com/technology/tech/java/newto/introejb.htm
or Java World: (has more code examples)
http://www.javaworld.com/javaworld/jw-08-2004/jw-0809-ejb.html

Fall 2007

http://www.cis.ksu.edu

12

CIS 764 Database Systems Engineering


Entity bean bound to entity data, with unique key value; can contain multiple subitems.

where is the concept of a result set ?

Session bean session beans generally represent actions << bad OO !


process entity vs data entity

Stateless do not have internal state ( )


rather: do not keep track of the callers state !

Statefull ..maintains the conversation state across


multiple method invocations (e.g. a shopping cart)

Beans have an associated deployment descriptor Beans have own QL OO version of sql
Fall 2007

http://www.cis.ksu.edu

13

CIS 764 Database Systems Engineering

EJB annotations http://www.fnogol.de/archives/2005/05/13/ejb-30-annotations-cheat-sheet/

Fall 2007

http://www.cis.ksu.edu

14

CIS 764 Database Systems Engineering

Fall 2007

http://www.cis.ksu.edu

15

CIS 764 Database Systems Engineering


import javax.ejb.Stateless.*; @Stateless(name="CalculateEJB") public class CalculateEJBBean implements CalculateEJB { int value = 0; public String incrementValue() { value++; return "value incremented by 1"; } }

Fall 2007

http://www.cis.ksu.edu

16

CIS 764 Database Systems Engineering


import javax.persistence.*; import java.util.ArrayList; import java.util.Collection; @Entity @Table(name = "EMPLOYEES") public class Employee implements java.io.Serializable { private int empId; private String eName; private double sal; @Id @Column(name="EMPNO", primaryKey=true) /* getters and setters here see next slide }

Fall 2007

http://www.cis.ksu.edu

17

CIS 764 Database Systems Engineering


public int getEmpId( ) { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getEname( ) { return eName; } public void setEname(String eName) { this.eName = eName; } public double getSal( ) { return sal; } public void setSal(double sal) { this.sal = sal; } public String toString() { StringBuffer buf = new StringBuffer(); buf.append("Class:").append(this.getClass(). getName()).append(" :: ").append(" empId:").append(getEmpId()). append(" ename:").append(getEname()).append("sal:").append(getSal()); return buf.toString(); }

??? Why the toString method <<<<<<<<<<<<<<<< ??? Why ArrayList and Collection

Fall 2007

http://www.cis.ksu.edu

18

CIS 764 Database Systems Engineering


import javax.naming.Context; import javax.naming.InitialContext; public class CalculateejbClient { public static void main(String [] args) { Context context = new InitialContext(); CalculateEJB myejb = (CalculateEJB)context.lookup("java:comp/env/ejb/CalculateEJB"); myejb.incrementValue(); } } ??? Where does this client run ??

Fall 2007

http://www.cis.ksu.edu

19

CIS 764 Database Systems Engineering

Homework: Oracle EJB3 Simple Tutorial http://www.oracle.com/technology/obe/obe1013jdev/10131/10131_ejb_30/ejb_30.htm Do an in essence version for the PO DB.

Note: this is not a web app. The client has remote access to the bean.
Post snapshots in JDev and running the client.

Fall 2007

http://www.cis.ksu.edu

20

CIS 764 Database Systems Engineering

Note: Future requirements: Contribute some tutorial content Contribute some technical presentation . prior approval of topics is required.

Fall 2007

http://www.cis.ksu.edu

21

CIS 764 Database Systems Engineering

end.

Fall 2007

http://www.cis.ksu.edu

22