jboss7配置mysql连接_JBoss7部署EJB连接MySQL

本文详细介绍了如何在Windows环境下,使用JBoss AS7.1.1Final部署EJB并连接MySQL数据库。首先,创建MySQL数据库表,然后在JBoss中配置MySQL数据源,包括安装JDBC驱动和修改standalone.xml文件。接着,创建实体类,编写Bean及调用数据库的方法,最后通过persistence.xml文件配置实体与数据库的映射。整个过程完成后,可以通过EJB远程调用获取数据库数据。
摘要由CSDN通过智能技术生成

该文章记录了在原有SmartHome项目基础上加入MySql数据库、配置数据源、添加实体类和配置文件、添加调用方法等,并成功使用客户端程序连接WebService,远程调用EJB连接数据库获取到数据。

开发环境:Win7,jdk1.7,JBoss AS7.1.1Final,MySql 5.6,MyEclipse 10。

一、MySQL

建表等,此处略去。(注意连接使用remote用户,不能使用localhost用户)

二、在JBoss7中配置MySQL数据源

在JBoss中配置数据库的连接需要两个步骤:

1. 安装JDBC的驱动

首先进入JBoss安装目录,即%JBOSS_HOME%下,进入modules/com/,新建mysql文件夹,进入,建立main文件夹。在main目录下,加入如下两个文件:

• JBOSS_HOME/modules/com/mysql/main/mysql-connector-java-5.1.17-bin.jar

• JBOSS_HOME/modules/com/mysql/main/module.xml

① mysql-connector-java-5.1.17-bin.jar是JDBC驱动,下载链接:

http://dev.mysql.com/downloads/connector/j/

② module.xml文件,记录了添加模块的相关配置,代码如下。其中module节点的name就是建立的文件夹路径,resources表示mysql驱动的路径。

2. 在配置中加入数据源

修改/JBOSS_HOME/standalone/configuration目录下的standalone.xml文件,找到datasources子系统,修改配置如下,其中jndi-name表示数据源名称:

jdbc:mysql://115.xxx.xxx.xxx:3306/smarthome1

mysql

admin

123456

0

600

com.mysql.jdbc.Driver

com.mysql.jdbc.jdbc2.optional.MysqlXADataSource

找到jpa子系统,修改配置如下,注意datasource与上面jndi名称一致:

若以上配置成功,则在JBoss7不部署任何EJB的情况下启动不会报错,查看JBOSS_HOME/modules/com/mysql/main/路径,会发现生成了mysql-connector-java-5.1.17-bin.jar.index文件,表示该模块添加成功。

三、编写Bean实体及其配置文件、添加调用方法

Bean实体(注意不要自动生成serial version ID,否则会报错):

packagesmartHome.po;importjava.io.Serializable;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.Table;

@Entity//表明这是一个实体Bean

@Table (name = "data" ) //和数据库表data 建立映射

public class Data implementsSerializable{

@Id//表明是该实体的id

@GeneratedValue(strategy = GenerationType. AUTO ) //id生成策略

@Column(name = "id" )//对应data表id字段

private Integer id; //数据编号

@Column(name= "uid" ) //对应data表uid字段

private String uid; //用户ID

@Column(name= "room" ) //对应data表room字段

private String room; //房间名称:客厅、卧室

@Column(name= "type" ) //对应data表type字段

private String type; //数据类型:温度temp、湿度humd、光照度light、报警alarm

@Column(name= "value" ) //对应data表value字段

private String value; //数据值//setter和getter方法省略

}

在Session接口和ServiceSession类中增加调用数据库的方法:

@PersistenceContext(unitName = "Data")privateEntityManager em;//根据用户ID和房间ID获取数据库数据

@SuppressWarnings("unchecked")publicResultMap getDataByUIDandRoomID(String room) {

ResultMap resultMap= newResultMap();

String status= null; //结果状态:success,fail,overtime,error

String description = null; //结果描述,fail时描述失败原因

HashMap resultData=new HashMap();

System.out.println("查询开始...");

List list = em.createQuery( "FROM Data ").getResultList();if (list != null) {

status="success";

Iterator it =list.iterator();while(it.hasNext()) {

Data data=it.next();if(data.getUid().equals(user.getID()) &&data.getRoom().equals(room)){

resultData.put(data.getType(), data.getValue());

System.out.println("数据类型:" +data.getType());

System.out.println("数据值:" +data.getValue());

}

}

}else{

status="fail";

description="未找到该用户所在房间信息";

}

System.out.println("查询完毕....");

resultMap.setStatus(status);

resultMap.setDescription(description);

resultMap.setResultData(resultData);returnresultMap;

}

在工程的META-INF目录下加入persistence.xml文件,该文件会参考使用的datasource来匹配实体与数据库,代码如下:(并注意将工程打包成jar时添加该文件)

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"version="1.0">

org.hibernate.ejb.HibernatePersistence

java:/MySqlDS

客户端连接EJB方法不变,调用方法返回结果的相关代码此处略去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值