由于参加了大学生创新项目,跟研究生做的项目不用MyEclipse,而是用NetBeans....所以,发一帖近期来在NetBeans上使用EJB的样例,给刚入门的同志参考参考.
1.新建JAVA EE项目(一些简单的步骤这里就不截图了) 如下图,勾上创建EJB,和WAR.
2.在EJB的源包下创建两个包:bean和sessionBean
3.右击bean->新建->通过数据库生成实体类 ,要通过自己创建的数据库实例来获取对应的bean,这里我是用mysql来创建的,其他数据库应该类似.
4.点击下一步,再点击完成,之后就会在bean包下看到一个自动生成的User类.
5.右击sessionBean->新建->会话bean ,改好名字.
6.在生成的NewSessionBean中,右键->插入代码->使用实体管理器,之后就会自动生成一个EntityManager.
7.写一个Servlet,来测试EJB,在war包下的源包中,添加一个servlet包,新建一个servlet,在创建好的servlet中,右键->插入代码->调用企业Bean, 选择ejb项目中刚刚创建的sessionBean,附上servlet和sessionBean的方法代码:
@Stateless
public class UserSessionBean implements UserSessionBeanLocal {
@PersistenceContext(unitName = "EnterpriseApplication5-ejbPU")
private EntityManager em;
public void persist(Object object) {
em.persist(object);
}
@Override
public List findAll() {
Query query= em.createNativeQuery("select * from user");
return query.getResultList();//返回所有查到的数据
}
}
public class MyServlet extends HttpServlet {
@EJB
private UserSessionBeanLocal userSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
List list=userSessionBean.findAll();
PrintWriter out=response.getWriter();
Iterator it=list.iterator();
while(it.hasNext()){
Object[] obj=(Object[]) it.next();//由于查到的数据放在了List中,每条记录都以Object[]的形式存放,所以要转换为Object[]
for(int i=0;i<obj.length;i++){
out.print(obj[i]+" ");
}
out.print("<br><br>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
8.最后,写一个jsp页面,使用一个超链接来调用servlet即可看到结果.