热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->java 
站内搜索:
在JAVA EE环境下使用Kodo EJB(2)
作者:肖菁 来源:唯J族 整理日期:2007-8-7

em.getTransaction().commit();

} finally {

/* 关闭 EJB 实体管理器 */

em.close();

}

}

 

public void deleteBook(Book book) throws RemoteException {

/* 获得 EJB 的实体管理器 */

EntityManager em = emf.getEntityManager();

try {

/* 开始事务 */

em.getTransaction().begin();

/* 处理业务 */

Query q = em.createQuery("delete from Book c where c.id = :id");

q.setParameter("id", book.id);

q.executeUpdate();

/* 结束事务 */

em.getTransaction().commit();

} finally {

/* 关闭 EJB 实体管理器 */

em.close();

}

}

 

public Collection getBooks(String queryString) throws RemoteException {

/* 获得 EJB 的实体管理器 */

EntityManager em = emf.getEntityManager();

try {

/* 开始事务 */

em.getTransaction().begin();

/* 处理业务 */

List allBooks = em.createQuery(queryString).getResultList();

/* 结束事务 */

em.getTransaction().commit();

return allBooks;

} finally {

/* 关闭 EJB 实体管理器 */

em.close();

}

}

 

public void setSessionContext(SessionContext ctx) {

this.ctx = ctx;

try {

/* 获取 JAVA EE 容器上下文环境 */

Context ejbContext = new InitialContext ();

Object o = null;

try{

/* 根据 JNDI 查找 kodo.persistence.EntityManagerFactoryImpl 的实例 */

o = ejbContext.lookup("ejb/kodo/emf");

}catch(Exception e){

/* 如果没有找到,尝试将 kodo.persistence.EntityManagerFactoryImpl 的实例绑定到 JNDI 上 */

EntityManagerFactory emfForEjb = Persistence.createEntityManagerFactory(null);

ejbContext.bind("ejb/kodo/emf",emfForEjb);

}

if (o == null)

{

/* 如果没有找到,尝试再次查找 */

emf = (EntityManagerFactory)ejbContext.lookup("ejb/kodo/emf");

}

else {

emf = (EntityManagerFactory)o;

}

 

} catch (NamingException e) {

throw new RuntimeException(e);

}

}

 

public void ejbCreate() throws RemoteException {

}

 

public void ejbActivate() throws EJBException, RemoteException {

}

 

public void ejbPassivate() throws EJBException, RemoteException {

}

 

public void ejbRemove() throws EJBException, RemoteException {

}

 

public void unsetSessionContext() {

ctx = null;

}

 

}


BookHome 接口

package org.vivianj.kodo.examples.ejb.stateless;

 

import java.rmi.RemoteException;

 

import javax.ejb.CreateException;

import javax.ejb.EJBHome;

 

/**

* BookHome 类提供 Session Bean 的 home 接口

*/

public interface BookHome extends EJBHome {

public BookRemote create() throws CreateException, RemoteException;

}


BookRemote 接口

package org.vivianj.kodo.examples.ejb.stateless;

[1]  [2]  [3]  
相关文章