MyEclipse创建EJB3.0

MyEclipse版本:6.0.1
JBoss版本:4.0.4 GA
Tomcat版本:6.0.14

一、创建EJB Project
1.



2.
MyEclipse创建EJB3.0


3.
MyEclipse创建EJB3.0



Persistence Unit Name:
对应persistence.xml中
<persistence-unit name="stuSystemPU" transaction-type="JTA">

的信息。

JNDI Data Source:
对应JBoss部署文件夹deploy下mysql-ds.xml中<jndi-name>的信息。

下面的JPA设置不影响JBoss服务器的数据源设置。只是用于在设计EJB的时帮助查看数据库元数据和表数据。

4.
MyEclipse创建EJB3.0


5. mysql-ds.xml

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

<datasource>
	<local-tx-datasource>
		<jndi-name>stuMySqlDS</jndi-name>
		<connection-url>
			jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=GB2312
		</connection-url>
		<driver-class>com.mysql.jdbc.Driver</driver-class>
		<user-name>root</user-name>
		<password>admin</password>
		<exception-sorter-class-name>
			org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
		</exception-sorter-class-name>
		<min-pool-size>3</min-pool-size>
		<max-pool-size>32</max-pool-size>
		<!-- 抛出异常前最大等待时间 -->
		<blocking-timeout-millis>60000</blocking-timeout-millis>
		<!-- 关闭连接前最大空闲时间 -->
		<idel-timeout-minutes>5</idel-timeout-minutes>

		<metadata>mySQL</metadata>
	</local-tx-datasource>
</datasource>



6.persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="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-unit name="StuEntityPU" transaction-type="JTA">
		<jta-data-source>java:/stuMySqlDS</jta-data-source>
		
		<!-- 下面属性只针对JBoss服务器 -->
		<properties>
			<property name="hibernate.hbm2ddl.auto" value="create-drop" />
			<!-- JDBC抓取数量的大小:Statement.setFetchSize() -->
			<property name="hibernate.jdbc.fetch_size" value="15" />
			<!-- JDBC批量更新数量 -->
			<property name="hibernate.jdbc.batch_size" value="10"/>
			<property name="hibernate.show_sql" value="true" />
			<property na
me="hibernate.format_sql" value="true" />
		</properties>
	</persistence-unit>
</persistence>


7. 实体Bean:StudentEntity.java


@Entity
@Table(name="Student")
public class StudentEntity implements Serializable {
	
	// 属性
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id")
	private int id;
	
	@Column(name="name",nullable=false)
	private String name;

	@Column(name="age")
	private int age;
	
	@Column(name="sex")
	private String sex;
	// 省略getter和setter
}




8. 用户操作接口:BaseOperation.java


public interface BaseOperaion {
	List findAll();
	Object find(Class c, Serializable id);
	void del(Object obj);
	Object update(Object obj);
	void add(Object obj);
}



9. 会话Bean:StudentDaoBean.java


@Stateless
@Remote(BaseOperaion.class)
public class StudentDaoBean implements BaseOperaion{
	
	@PersistenceContext(unitName="StuEntityPU")
	private EntityManager em;
	
	public void add(Object obj) {
		em.persist(obj);
	}

	public void del(Object obj) {
		em.remove(obj);
	}

	public Object find(Class c, Serializable id) {
		return em.find(c, id);
	}

	public Object update(Object obj) {
		return em.merge(obj);
	}

	public List findAll() {
		return em.createQuery("FROM StudentEntity").getResultList();
	}
}



10. 部署上面创建的EJB.jar和数据库驱动包到JBoss
注意JBoss与Tomcat的http端口设置。

11. Tomcat 访问
stuSystem.jsp


<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.util.Properties"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="dao.BaseOperaion"%>
<%@ page import="java.util.List"%>
<%@page import="beans.StudentEntity"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


<%
	Properties porps = new Properties();
	porps.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
	porps.setProperty(Context.PROVIDER_URL,"jnp://168.192.0.1:1099");
	porps.setProperty(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
	
	InitialContext context = new InitialContext(porps);
	BaseOperaion bo = (BaseOperaion) context.lookup("StudentDaoBean/remote");
	// System.out.println(hw.sayHello("fantasy"));
	
	// del
	StudentEntity stu01 = (StudentEntity) bo.find(StudentEntity.class, 1);
	bo.del(stu01);
	
	// show all
	List result = bo.findAll();
%>

<table>
	<tr>
		<th>编号</th>
		<th>姓名</th>
		<th>年龄</th>
		<th>性别</th>
	</tr>
	<c:forEach items="<%=result %>" var="stu" >
		<tr>
			<td>${stu.id }</td>
			<td>${stu.name }</td>
			<td>${stu.age }</td>
			<td>${stu.sex }</td>
		</tr>
	</c:forEach>
</table>


你可能感兴趣的:(java,tomcat,mysql,MyEclipse,jboss)