CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

需要同时访问多个包内的实体bean, EJB3.0或者EJB2.1能不能解决?怎么解决?

楼主ldw1981(刘)2006-03-04 12:10:03 在 Java / J2EE / EJB / JMS 提问

具体的说,就是查询模块需要关联查询其他各个模块的记录,比如说:查询用户的业务办理记录,而用户和业务是两个模块,所以用户实体Bean和业务实体Bean就部署在不同的包里。所以需要同时访问这两个包,请问该怎么处理呢? 问题点数:50、回复次数:2Top

1 楼yeshucheng(叶澍成★七哥)回复于 2006-03-04 18:19:17 得分 5

我不知道楼主所说的不在同一个包是指不在同一个ear还是同一个包的含义  
  其实只要在同一个jvm中就可以调用,跨ear稍微麻烦点,但是EJB同样可以做到你的要求。  
  通过访问localhome来定位到你相关要的类就可以Top

2 楼mirroryuri(蜜仁)回复于 2006-03-09 16:18:15 得分 45

可以在ejb2.0中,利用sessionbean直接访问数据库。  
  下面我曾经做过的代码,楼主可以看看的:  
  /**  
    *   @return   JDBC   连接    
    */  
  public   Connection   getConnection()   throws   Exception   {  
  Context   ctx   =   null;  
  try   {  
  ctx   =   new   InitialContext();  
  DataSource   ds   =   (DataSource)   ctx.lookup("java:/BOSSOracle9i");  
  return   ds.getConnection();  
   
  }   catch   (Exception   e)   {  
  System.err.println("Couldn't   get   datasource!");  
  e.printStackTrace();  
  throw   e;  
  }  
  finally   {  
  ctx.close();  
  }  
  }  
   
  /**  
    *   Business   method  
    *   @ejb.interface-method     view-type   =   "both"  
    */  
  public   List   findByQueryStr(String   queryString,   String   version  
  )   throws   VersionException,   FinderException,   QueryException   {    
  if   (this.version.compareToIgnoreCase(version)   >   0)   {  
  throw   new   VersionException(this.getClass().getName());  
  }//   版本低。  
   
  PreparedStatement   pstmt   =   null;    
  Connection   conn   =   null;  
  List   result   =   new   ArrayList();  
  try   {    
  System.out.println("ejbFindByQueryStr("   +   queryString   +   ")   called.");  
   
  conn   =   getConnection();    
  pstmt   =   conn.prepareStatement(queryString);    
  ResultSet   rs   =   pstmt.executeQuery();    
   
  int   count   =   rs.getMetaData().getColumnCount();  
  while   (rs.next())   {  
  Object[]   oneResult   =   new   Object[count];  
  for   (int   colIndex   =   0;   colIndex   <   count;   colIndex   ++)   {  
  oneResult[colIndex]   =   rs.getObject(colIndex   +   1);  
  }  
  result.add(oneResult);  
  }  
  }catch   (Exception   e)   {    
  e.printStackTrace();  
  throw   new   FinderException(e.toString());    
  }finally   {    
  try   {  
  if   (pstmt   !=   null)  
  pstmt.close();  
  }   catch   (Exception   e)   {  
  }  
   
  try   {  
  if   (conn   !=   null)  
  conn.close();  
  }   catch   (Exception   e)   {  
  }  
  }    
  return   result;  
  } Top

相关问题

  • 高手指点ejb中的实体bean问题!
  • 使用了实体bean就是使用了ejb么?
  • jbuilder在什么地方写ejb的cmp管理的实体bean的finder???
  • EJB (实体BEAN)部署时发生错误:请高手帮忙看看.
  • 实战EJB,实体BEAN,怎么出了这个错误??怎么会找不到???
  • ejb实体bean问题,请高手帮忙!!!!!解决后立即给分。。。。。。。。。。。。。
  • 刚接触J2EE,EJB里面的Bean是个什么概念啊?比如实体Bean和会话Bean什么的。
  • 求实体bean的例子
  • 实体Bean问题请教!
  • 用JSP调用EJB 实体bean时 执行 lookup()方法时找不到具体的Bean

关键词

  • ejb
  • 模块
  • 查询
  • 业务
  • 用户
  • null
  • 访问
  • 同一个
  • ctx
  • 包

得分解答快速导航

  • 帖主:ldw1981
  • yeshucheng
  • mirroryuri

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo