对于三者各自的介绍就不在这里了 ,网上文章很多,说的也比我要好。

开发环境声明:
  IDE: Eclipse3.3+Myeclipse6.0
DataBase: MySQL5.0
Server: Jboss4.24GA之前的版本不支持EJB3.0,可能需要补丁,本人没试过

 开发阶段:

数据库名为:logintest 表就一张: userinfo
字段: id auto_increament,username:varchar password:varchar工程里有脚本;

可以对照源码来试验 : 
  
Hibernate:
 新建ejb工程----》 选择3.0 名字: loginejb---->add Hibernate  capabilities... Hibernate的配置不说了(一张表也没必要说)
   New PO : User:这里说下结合Xdoclet来自动生成映射文件 :
   在PO里可以结合一些注释标记: 比如 
/***
* @hibernate.class
* table="userinfo"
* @author sawen21
*
*/

/**
* @hibernate.id
* generator-class="increment"
* @param id
*/

/**
* @hibernate.property
* @return
*/   
  这里就用了三种标记就能完成user.hbm.xml的生成,当然还有很多的特性比如many-to-one one-to-one等,这里用不上,可以到网上查些Xdoclet的Blog,这样可以为你节省很多时间,而且不容易出错。
  添加Xdoclet方法: 选中工程loginejb-->右键---》property-->myeclipse展开---》选择xdoclet-->Add standard..选择standard hibernate即可。
然后选中工程loginejb----右键--》myeclipse--->run xdoclet就能够成功生成了 。

 将user.hbm.xml加到hibernate.cfg.xml中。  <mapping resource="po/User.hbm.xml" />

有HibernateTest.java如果运行成功的话 就证明Hibernate配置成功了 


  
  Session Bean
新建接口: IUser.java
   package dao;

import po.User;

public interface IUser {

	  public User login(String username,String password);
}


实现接口类 Userimpl.java

 package dao.daoimpl;

import java.util.List;
import javax.ejb.Remote;
import javax.ejb.Stateless;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;

import po.User;
import util.HibernateUtil;
import dao.IUser;


@Remote
@Stateless
public class Userimpl implements IUser {

	public User login(String username, String password) {
		
		try{
			User user=null;
			Session s=HibernateUtil.getSession();
			Query q=s.createQuery("from User u where username=:name and password=:pass");
			q.setString("name", username);
			q.setString("pass", password);
			List l=q.list();
			if(l.size()>0)
				user=(User) l.get(0);
			HibernateUtil.closeSession();
			return user;
		}catch(HibernateException he){
	    	 he.printStackTrace();
	     }
		return null;
	}

}

 


这里注意的是:
@Remote
@Stateless
这里是3.0比之前好用的地方。不再需要建立其他的接口类,代表远程接口,无状态SessionBean



JSF

新建Web Project----> loginweb-------->add JSF capabilities

jsf这里也不太多讲 主要注意的是 faces-config.xml 以及jsf提供的一些UI组件应用。

可以结合上传的源代码来分析。


发布说明:
1.先从loginejb工程内的脚本执行
把mysql驱动拷贝到{%JBOSS_HOME%}/server/default/lib
2.把loginejb.jar loginweb.war 烤到{%JBOSS_HOME%}/server/default/deploy下
3.启动Jboss server
4.测试连接: http://localhost:8080/loginweb/login.faces
评论
sawen21 2008-02-23
呵呵~ 我是 分两个工程的 。。ejb端 : loginejb web端:loginweb
qiujy 2008-02-23
呵呵。。ejb端组件跟Web端应用放在一个工程中开发,对EJB来说肯定是不合理的,可以看看我在CSDN的博客,也写了一个JSF1.2+EJB3的员工CRUD实例,分成ejb,和web两个工程写的。地址
http://blog.csdn.net/qjyong/archive/2008/02/20/2110211.aspx
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

sawen21
搜索本博客
最近加入圈子
最新评论