当前位置: 首页 > 工具软件 > Ejb3Unit > 使用案例 >

ejb mysql_JBoss + EJB3 + MySql : 开发第一个EJB

扈韬
2023-12-01

JBoss开发Bean并不困难,而对于不知道的人来说,数据库配置才是比较棘手的问题。现在我们就来一步一步开发一个EJB3 + MySql的Bean。

一、MySql数据库的配置

1. 配置数据源

在 %JBOSS_HOME%/docs/examples/jca 目录下找到一个名叫 "mysql-db.xml" 的文件,这个是官方为我们写好的针对mysql的数据源配置文件,我们改改它就行了。

将 mysql-db.xml 复制到 /server/default/deploy 目录下,并将文件内容修改为:

MySqlDS

jdbc:mysql://localhost:3306/ejb

com.mysql.jdbc.Driver

root

0000

org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter

mySQL

是你的mysql数据库用户名,同理是连接密码。

2. 配置persistence.xml

persistence.xml 是 Java Persistence 规范要求我们定义的一个部署描述文件,作用是配置一些基本信息,如EntityManager服务的名称。我们在项目目录的 METAINF/ 目录下创建这个文件:

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">

java:/MySqlDS

至此数据库配置完毕。

二、开发Bean

1. 开发Entity Bean

我们创建一个名为 User 的实体Bean, 用来保存一个用户的基本信息,如用户名,密码。

package dev.entity;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity

@Table(name = "DB_USER")

public class User implements Serializable {

@Id

@Column(name = "C_ID")

private int id;

@Column(name = "C_NAME")

private String name;

@Column(name = "C_PASSWORD")

private String pwd;

//get() and set()

}

然后编写以下语句创建数据表 DB_USER:

create table DB_USER(

C_ID int key,

C_NAME varchar(40),

C_PASSWORD varchar(40)

);

2. 开发Session Bean

我们的Session Bean将包括2个功用:一是创建并持久化一个User类,二是从数据库中取回一个User对象。

首先创建远程接口 UserBeanRemote :

package dev.bean;

import javax.ejb.Remote;

import dev.entity.*;

@Remote

public interface UserBeanRemote {

void createUser(User user); //创建User

User getUser(int id); //查询并获取User

}然后创建会话Bean : UserBean

package dev.bean;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

import dev.entity.*;

@Stateless

public class UserBean implements UserBeanRemote {

@PersistenceContext(unitName = "entity")

private EntityManager manager;

public void createUser(User user) {

manager.persist(user);

}

public User getUser(int id) {

return manager.find(User.class, id);

}

}

至此 Bean开发完毕。

三、部署 EJB

Eclipse中,在项目名上右击,选择 Export. 在弹出的向导中选择 EJB JAR file. 然后按照提示即可完成部署。

四、编写测试代码

public class Client {

public static void main(String[] args) {

try {

Context context = initContext();

UserBeanRemote ubr = (UserBeanRemote)context.lookup("UserBean/remote");

User user = new User();

user.setId(4);

user.setName("bruce lee");

user.setPwd("123456");

ubr.createUser(user);

/*User user = (User)ubr.getUser(2);

System.out.println(user.getName());*/

System.out.println("success!");

}

catch (Exception ex) {

ex.printStackTrace();

}

}

/*

* 这一部分是写死的

* 固定写法

*/

public static Context initContext() throws javax.naming.NamingException {

Properties prop = new Properties();

prop.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");

prop.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");

prop.put(Context.PROVIDER_URL, "jnp://localhost:1099");

return new javax.naming.InitialContext(prop);

}

}

至此一个简单的EJB3已经开发完成。

 类似资料: