JBoss + EJB3 + MySql : 开发第一个EJB (一)

2014-11-24 10:16:47 · 作者: · 浏览: 0

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


一、MySql数据库的配置

1. 配置数据源

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

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


[html]
< xml version="1.0" encoding="UTF-8" >






MySqlDS
jdbc:mysql://localhost:3306/ejb
com.mysql.jdbc.Driver
root
0000
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter

mySQL


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




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/ 目录下创建这个文件:


[html]
< xml version="1.0" encoding="UTF-8" >
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








< xml version="1.0" encoding="UTF-8" >
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, 用来保存一个用户的基本信息,如用户名,密码。


[java]
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()
}

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:


[sql]
create table DB_USER(
C_ID int key,
C_NAME varchar(40),
C_PASSWORD varchar(40)
);

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 :


[java]
package dev.bean;

import javax.ejb.Remote;
import dev.entity.*;

@Remote
public interface UserBeanRemote {
void createUser(User user); //创建User
User getUser(int id); //查询并获取User
}

package dev.bean;

import javax.ejb.Remote;
import dev.entity.*;

@Remote
public interface UserBeanRemote {
void createUser(User user); //创建User
U