本文为原创,如需转载,请注明作者和出处,谢谢!
上一篇:
eclipse + JBoss 5 + EJB3开发指南(5):使用配置文件发布Session Bean
EJB3容器通过EntityManager对象管理实体Bean,该类最主要的功能就是在记录和JavaBean之间进行互相映射。例如,我们从数据库中查出一条记录,这条记录有field1和field2两个字段,假设有一个JavaBean,也包含了field1和field2属性。那么EntityManager可以将这条记录中的值映射到JavaBean的field1和field2属性中。也就是说,在数据库中的一条记录就对应于一个JavaBean的对象实例。下面将给出一个简单的例子来演示如何来实现一个应用实体Bean的程序。在这个例子中使用无状态的session bean通过EntityManager对象从数据表中查找一条记录,将该记录映射成实体Bean的对象实例,最后通过session bean的方法返回该记录的某个字段值。
表名:t_users
表中的字段和记录
id name password_md5
1 bill TaokQpoNJQb02eafO/JgYw==
一、配置JBoss的数据库连接池
在<jboss安装目录>\server\default\deploy目录中建立一个mysql-ds.xml文件,内容如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><?xmlversion="1.0"encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MyPIM</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/pim</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>1234</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
mysql-ds.xml文件用于配置mysql的数据源。实际上,该文件可以在<jboss安装目录>\docs\examples\jca目录中找到,读者只需要将数据库名、用户名和密码以及jndi名改成自己的就可以了。最后将修改后的mysql-ds.xml文件复制到deploy目录中(必须叫这个文件名)。
连接mysql数据库需要一个jdbc驱动(jar文件),将该文件复制到<jboss安装目录>\server\default\lib目录中。
二、编写实体Bean
User类是一个实体Bean,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packageentity;
importjavax.persistence.Column;
importjavax.persistence.Entity;
importjavax.persistence.Id;
importjavax.persistence.Table;
@Entity
@Table(name="t_users")
publicclassUser
{
privateintid;
privateStringname;
privateStringpassword;
@Id
publicintgetId()
{
returnid;
}
publicvoidsetId(intid)
{
this.id=id;
}
publicStringgetName()
{
returnname;
}
publicvoidsetName(Stringname)
{
this.name=name;
}
@Column(name="password_md5")
publicStringgetPassword()
{
returnpassword;
}
publicvoidsetPassword(Stringpassword)
{
this.password=password;
}
}
三、配置persistence.xml文件
在META-INF目录中建立一个persistence.xml文件,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><?xmlversion="1.0"encoding="UTF-8"?>
<persistencexmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unitname="myentity">
<jta-data-source>java:/MyPIM</jta-data-source>
<properties>
<propertyname="hibernate.hbm2ddl.auto"value="none"/>
<propertyname="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect"/>
</properties>
</persistence-unit>
</persistence>
其中<jta-data-source>元素的值就是mysql-ds.xml文件中配置的数据源名。如果使用注释配置session bean,META-INF目录下只有两个文件即可:MANIFEST.MF和persistence.xml。
四、在session bean中调用实体bean
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packageservice;
importjava.util.ArrayList;
importjava.util.List;
importjavax.ejb.Stateless;
importjavax.persistence.EntityManager;
importjavax.persistence.PersistenceContext;
importentity.User;
@Stateless
publicclass UserBeanimplements UserBeanRemote
{
@PersistenceContext(unitName="myentity")
protectedEntityManagerem;
@Override
publicString getPassword()
{
Useruser=em.find(User.class,1);
returnuser.getPassword();
}
}
其中UserBeanRemote为远程接口。要注意的是,@PersistenceContext注释的unitName属性值必须和persistence.xml文件中的<persistence-unit>元素的name属性值相同。
五、客户端调用session bean
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->InitialContextctx=newInitialContext();
UserBeanRemote userBeanRemote =(UserBeanRemote)ctx.lookup("MyEnterprise/UserBean/remote");
System.out.println(userBeanRemote.getPassword());
由于本书的程序都在一个ear包中,因此,默认的jndi名是MyEnterprise/UserBean/remote,如果直接发布包含EJB的jar包,默认的jndi名称为UserBean/remote。
运行上面的代码后,将输出如下的字符串:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->TaokQpoNJQb02eafO/JgYw==
下一篇:eclipse + JBoss 5 + EJB3开发指南(7):实现Entity Bean的一对一(one-to-one)映射
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!《银河系列原创教程》发布《Java Web开发速学宝典》出版,欢迎定购
分享到:
相关推荐
在IT行业中,开发企业级应用程序通常涉及到多个技术的集成,如Eclipse作为IDE,Jboss作为应用服务器,以及MySql作为数据库系统。本教程将详细阐述如何利用这些工具来开发EJB(Enterprise JavaBeans)。 **Eclipse**...
### Eclipse + JBoss 5 + EJB3 开发指南 #### (1):编写第一个无状态的SessionBean ##### 一、配置开发环境 在开始编写无状态的SessionBean之前,首先需要确保开发环境已经正确配置。以下是所需的主要组件: 1...
总的来说,"eclipse + JBoss 5 + EJB3开发指南中的代码"涵盖了Java EE开发的关键方面,特别是EJB3的使用。通过实践这些示例,开发者可以深入了解如何在现代企业环境中利用EJB3提高生产力,同时减少开发和维护的复杂...
在本文中,我们将深入探讨如何使用Eclipse IDE与JBoss应用程序服务器(版本7.x)来开发和部署一个基于EJB 3.x的简单企业级Java应用程序。EJB(Enterprise JavaBeans)是Java平台上的核心组件,它提供了一种标准的...
在Java企业版(Java EE)开发中,EJB(Enterprise JavaBeans)是核心组件之一,用于构建可扩展、安全和事务处理的服务器端应用程序。EJB技术提供了多种类型的Bean,其中包括会话Bean,它们作为客户端与业务逻辑之间...
EJB3是EJB规范的一个重要版本,它极大地简化了EJB的开发模型,引入了大量的注解,使得开发者无需编写大量的XML配置文件就能实现企业级功能。 在EJB3中,主要的组件包括: 1. **实体Bean (Entity Beans)**:代表持久...
5. **实战示例**:提供一个简单的EJB3应用程序实例,如用户管理系统,展示如何创建Bean、持久化实体、实现业务逻辑以及调用远程接口等步骤。 6. **测试与调试**:讨论如何使用JUnit测试EJB组件,以及在JBoss环境下...
2. **JBoss 5.0.0.GA-jdk6**:JBoss是一个开源的应用服务器,广泛用于部署和运行企业级Java应用程序。确保你已经下载并解压了JBoss,同时配置了`JBOSS_HOME`环境变量以及`path`,以便操作系统可以找到它。 3. **...
本文将围绕“Jboss下开发ejb应用之一会话bean的应用”这一主题,深入探讨如何在Jboss应用服务器上开发和部署会话Bean,以及涉及到的相关工具和源码。 会话Bean是EJB的一种类型,它代表了业务逻辑组件,为客户端提供...
【JBoss 5.1】是一个基于Java EE 5规范的开源应用服务器,它为EJB提供了运行环境。EJB可以在JBoss中部署并运行,实现业务逻辑,与数据库交互,以及其他企业级服务。JBoss 5.1版本支持EJB 3.0规范,该规范简化了EJB的...
【标题】"myEclipse+Jboss+mysql+EJB"是一个综合性的开发环境配置,它涵盖了四个关键组件:myEclipse、Jboss、mysql和EJB。这些组件在IT行业中都扮演着重要的角色,尤其在企业级Java应用的开发与部署上。 ...
根据文件信息,以下是关于Jboss7.1.1与eclipse-kepler集成并开发ejb3的知识点。 首先,环境搭建方面,需要准备 JDK 1.5 或更高版本,并安装 Eclipse Kepler(版本4.3)。接着,下载并解压 Jboss7.1.1 到指定文件夹...
总的来说,MyEclipse结合JBoss提供了一个高效、便捷的EJB开发环境,使开发者能够轻松地利用EJB技术来构建企业级应用。无论是新手还是经验丰富的开发者,都可以从中受益,实现更高质量的Java EE项目开发。
创建一个EJB项目是使用MyEclipse进行EJB开发的第一步。这涉及到设置项目的基本属性,如项目名称、源代码目录、构建路径等。通过MyEclipse的图形界面,开发者可以轻松完成这一过程,同时也可以配置项目的编译器版本、...
根据提供的文件信息,我们可以深入探讨EJB(Enterprise JavaBeans)、JBoss应用服务器以及Eclipse集成开发环境的相关知识点。 ### EJB (Enterprise JavaBeans) EJB是Java平台为企业级应用程序提供的一种组件模型,...
在这个实例开发过程中,我们将探讨如何在 JBoss 4.2 服务器上使用 EJB 3.0 开发和部署会话bean 和实体bean。 首先,我们需要搭建开发环境。这包括安装 JDK (Java Development Kit),Eclipse 集成开发环境,以及 ...
### jBoss EJB 3.0 开发指南 #### 一、引言 随着 Java 技术的发展,企业级应用的复杂度不断提高,EJB(Enterprise JavaBeans)作为 Java EE 标准的一部分,在构建分布式系统方面扮演着重要的角色。EJB 3.0 相较于...