|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。j2ee 2、开辟第一个EJB
EJB2.0标准中界说了3种企业Bean。分离为会话Bean(SessionBean)、实体Bean(EntityBean)和动静驱动Bean(MessageDrivenBean)。会话Bean摹拟一个商务历程;实体Bean摹拟商务数据;而动静驱动Bean预会话Bean相似也是在摹拟一个商务历程,但动静驱动Bean只承受动静的挪用。
本文侧重先容怎样疾速开辟一个实体Bean。由于会话Bean绝对复杂,在了解了实体Bean后,本人很简单就可以编写出来。而动静驱动Bean在用到的时分学也不迟。
1.Eclipse中,运转"file"->"new"->"project"选择LombozJ2EEProject。在projectname中填进我们的工程名"EJBTest"。点击next后,会呈现javasetting的对话框,我们不做任何修正,间接next。在这一步,我们将创建一个EJB的模块。如图九所示,在ejbModule选项卡中,我们新建一个名为myEJB的EJBModule。
(图九)
然后在TargentServer中,选择我们方才设置好的Jboss3.2.x。add今后再选择finish,我们工程就创建好了。
2.如今用Lomboz的导游来天生我们EJB,选择"file"->"new"->"LombozEJBCreationWizard"。如图十所示:
(图十)
在package中填进包名,好比"Rip.ejb.cmp";在name中,我们给这个EJB起个名字,好比"mytest"。SelectEJBType选项里,选择"ContainerManagedEntityEJB",标明要创立一个由容器办理的实体EJB。如图十一所示
(图十一)
这一步中我们要声明数据表称号,数据源称号,和表中各个字段。参照图十二:
将各项内容填进响应的中央。注重,每增加一个字段都要点击add一次,将其放进下方的已到场的字段列表中。最初选中id这一字段,点击MakePrimaryKey,将其标志为主健。个中,tablename项对应着我们先前在mySQL中创建的数据表myejb;datasource对应着我们在jBoss中设定的数据源mytest-ds.xml。
点击finish后,就能够在左边src目次下Rip.ejb.cmp包中找到并翻开我们方才天生的mytestBean.java(mytest后的Bean是Lomboz主动增加的)文件。找到ejbCreate()办法,增加两个字符串型的输出变量"id"和"context,并增加两个办法setId(id)和setContext(context),详细完成如图十三:
(图十三)点击缩小
假如变动过程当中呈现载进包大概捕获非常的毛病,单击毛病标记,选择载进或间接抛出非常便可。
这个新创建的EJB必要被放进一个模块中才能够被装载、实行。如图十四所示:
(图十四)点击缩小
右健点击mytestBean.java,选择lomboz J2EE...->Add EJB to Module,再在方才创建的myEJB这个模块前打勾,点击ok后,便完成了装载。一个完全的实体EJB是由多个分歧服从的文件组合起来的,但这里它们由加了标签的mytestBean.java主动天生。所利用的是XDoclet手艺,感乐趣的读者能够到网上往搜刮一下,有良多的相干先容,我们就不再先容详细细节了。如图十五所示:右健点击myEJB这个模块,选择lomboz J2EE...->Generate EJB Classes。
[img=468align=centervspace=1border=1style=,327onerror=]http://www.ckuyun.com/UploadPic/2007-7/200777123456646.jpg[/img]
(图十五)点击缩小
显现乐成以后,在ejbsrc目次下的Rip.ejb.cmp包中,你就能够看到mytestHome.java等六个文件。在mytest这个模块上面的META-INF文件夹中,有很多xml文件。个中,jboss.xml、jbosscmp-jdbc.xml和ejb-jar.xml是部署EJB最关头的三个设置文件。而我们现阶段必要变动的只是jbosscmp-dbc.xml这个文件,它形貌了对数据源的形貌,其他的文件都已由lomboz 设置好了。我们将这个文件的相干部分修正为:
<jbosscmp-jdbc>
<enterprise-beans>
<defaults>
<datasource>java:/mytestDS</datasource>
<datasource-mapping>mySQL</datasource-mapping>
<preferred-relation-mapping>foreign-key</preferred-relation-mapping>
</defaults>
<enterprise-beans>
其他部分不做改动。至此,我们完成了一切的EJB开辟事情。右健点击myEJB这个模块,选择lomboz J2EE...->Deploy Module将这个模块装载到服务器中。然后,选择lomboz J2EE...->Debug Server运转服务器。万事俱备,只欠挪用!
3、EJB的挪用-利用JSP显现数据
如今我们将利用JSP作为营业层和暗示层来挪用EJB,将一些数据存储到数据库中,并把数据库里已有的数据全体打印到客户真个扫瞄器上。
1.如上文先容过的,我们再创建一个名为"myEJB"的Web模块。target Server仍是选择我们设置好的Jboss3.2.x,断定后将天生一个myWeb的目次。
2.翻开myWeb的目次,将以下的代码交换失落index.jsp的原有代码。
<%@pageimport="javax.ejb.*"%>
<%@pageimport="javax.naming.*"%>
<%@pageimport="javax.ejb.*"%>
<%@pageimport="Rip.ejb.cmp.*"%>
<%@pageimport="java.util.*"%>
<%@pageimport="java.rmi.RemoteException"%>
<html>
<head>
<title>WelcomeEverybody,ThisismyfirstEJBforqiqi</title>
</head>
<body>
<center><%
/*初始化体系的高低文,并查找jidi名为mytestBean的实体Bean*/
InitialContextContext=newInitialContext(System.getProperties());
mytestHomeHome=(mytestHome)Context.lookup("mytestBean");
try{
/*挪用EJB的Create()办法在在数据库中天生数据,假如你不必要挪用EJB时在底层数据库中发生数据,则不必要挪用 Create()办法*/
mytestmyBean=Home.create("18","Hello,IamRip");
/*依据后面的界说,findAll()办法将前往myejb表中的一切数据;假如你想利用分歧的find办法,好比要前往id<5的数据,你能够编写本人的finder办法。*/
Collectioncol=Home.findAll();
StringoutString="";
/*利用轮回的体例遍历一切的数据,并把它们打印出来*/
Iteratorit=col.iterator();
while(it.hasNext()){
mytestelement=(mytest)it.next();
outString=element.getId()+":"+element.getContext()+"<br>";
out.println(outString);
}
/*捕获并抛出给中非常*/
}catch(RemoteExceptione){
e.printStackTrace();
}catch(CreateExceptione){
e.printStackTrace();
}catch(FinderExceptione){
e.printStackTrace();
}
%></center>
</body>
</html>
3.右健点击myWEB这个模块,选择lomboz J2EE...->Deploy Module将这个WEB模块装载到服务器中。
4.翻开扫瞄器,在地点栏中输出"http://localhost:8080/myWEB/index.jsp"。假如统统顺遂的话,将能够看到好像图十六 的页面输入。
(图十六)点击缩小
至此,我们就停止了此次对J2EE的进门进修。
4、停止语
全文来看,真正在EJB开辟下面花的工夫对照少,仅仅几行代码罢了,以是EJB很合适使用体系的疾速开辟。但是,EJB从出生以来就是一项分量级的使用,特别是利用远程挪用(为了申明成绩,本文利用的就是这类办法),大批的利用了体系的资本。以是在一样平常情形下,利用当地接口能够年夜年夜的削减对资本的利用。大概,你还可使用其他O-R映照组件,好比说Hibernate等等。
因为篇幅无限,笔者不成能将一切大概呈现的毛病息争决举措逐一枚举出来,若有任何定见或成绩,请发送email到我的邮箱kknd0669@sina.com。
上一页
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。 |
|