iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >EJB查询返回值的解决方法是什么呢
  • 427
分享到

EJB查询返回值的解决方法是什么呢

2023-06-03 03:06:37 427人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关EJB查询返回值的解决方法是什么呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。关于EJB查询返回值的解决方法 多少天来,为此问题寝食难安,我曾发誓若我能解决这

这期内容当中小编将会给大家带来有关EJB查询返回值的解决方法是什么呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

关于EJB查询返回值的解决方法 

多少天来,为此问题寝食难安,我曾发誓若我能解决这个问题就要把它贴满各大BBS,如今得偿所愿。
csdn的Java版还需努力,最好分一下,如:javauNIOn
相信很多人都有如此之困惑,得此解决方法不敢独享,公之于众,以利后来人。
声明:此方法的至于彭璐大侠,彭大侠可能不常上网,这麽好的方法也不告诉我等之小虾米,只好代劳了,彭大侠的eMail不便公开,应该是金蝶的人吧。
好了,不废话了,有两种方法:
1、用vector:

>  public Enumeration ejbFindbigAccounts(double balanceGreaterThan) {
>  log("ejbFindBigAccounts (balance > " + balanceGreaterThan + ")");
>  Connection con = null;
>  PreparedStatement ps = null;
>
>  try {
>  con = getConnection();
>  ps = con.prepareStatement("select id from ejbAccounts where bal > ?");
>  ps.setDouble(1, balanceGreaterThan);
>  ps.executeQuery();
>  ResultSet rs = ps.getResultSet();
>  Vector v = new Vector();
>  String pk;
>  while (rs.next()) {
>  pk = rs.getString(1);
>  v.addElement(pk);
>  }
>  return v.elements();
>  } catch (sqlException sqe) {
>  log("SQLException: " + sqe);
>  throw new EJBException (sqe);
>  } finally {
>  cleanup(con, ps);
>  }
>  }
结论:不爽,不方便。

RowSet
RowSet tutorial chapter :
JDBCTutorial/chapter5.html">Http://developer.java.sun.com/developer/Books/JDBCTutorial/chapter5.html

rowset是个interface,需要有东西去实现它,sun的规范中给了三个class:cachedrowset,jdbcrowset,WEBrowset,如果去查jdk1.4 doc和j2skee1.2,有rowset,却没有那三个class,一般的开发工具(至少我的wsad)中也是这样,所以需要下jdbc2.0 opt-pack:
http://developer.java.sun.com/developer/earlyAccess/crs/

下下来了再怎么办呢?
装呗!
怎么装呢?
setup呀!
没有呀?
啊,没setup呀,sun干什么吃的,连setup都不做个,也太懒了吧。
/////////////////////////////////
哎,我们确实是都被ms惯坏了,看到只有jar,没setup就没辙了,大家好好想想,java最大的特性是什么,就是它的类库可以自由扩充呀,现在明白该怎么做了吧:

解包,得到rowset.jar,放在哪随您的意,别丢了就行。
2、在您的开发工具中增加一个路径,如:ROWSET_PATH对应:d:jdk1.4jrerowset.jar(和1的路径对应就行)。
3、右键您的工程文件,出现:property(大多数工具应该都有吧),加上rowset_path。
4、在您的源文件中:import sun.jdbc.rowset.*;

OK,搞定!下面就看您的了。(当然也可以把rowset压到jre里去)
应该说rowset(其实主要是CachedRowSet)真的是个好东西,和ms ado的resultset和borland的tclientset非常相似,最大的好处是Cache功能!
好了,看例子吧:
/////////////server端/////////////
package example4;

import java.sql.*;
import javax.sql.*;
import sun.jdbc.rowset.*;
import javax.naming.*;
import javax.ejb.*;

public class CoffeesBean implements SessionBean {

  private SessionContext sc = null;
  private Context ctx = null;
  private Datasource ds = null;
 
  public CoffeesBean () {}
 
  public void ejbCreate() throws CreateException {

  try {
  ctx = new InitialContext();
  ds = (DataSource)ctx.lookup("jdbc/CoffeesDB");
  }
  catch (Exception e) {
  System.out.println(e.getMessage());
  throw new CreateException();
  }
  }

  public RowSet getCoffees() throws SQLException {
 
  Connection con = null;
ResultSet rs;
  CachedRowSet crs;

  try {
  con = ds.getConnection("webCustomer", "webPassWord");
  Statement stmt = con.createStatement();
  rs =  stmt.executeQuery("select * from coffees");
 
  crs = new CachedRowSet();
  crs.populate(rs);
  // the writer needs this because JDBC drivers
  // don't provide this meta-data.
  crs.setTableName("coffees");
 
  rs.close();
  stmt.close();
  } finally {
  if (con != null)
  con.close();
  }
  return rset;
  }
 
  public updateCoffees(RowSet rs) throws SQLException {

  Connection con = null;

  try {
  CachedRowSet crs = (CachedRowSet)rs;
  con = ds.getConnection("webCustomer", "webPassword");
  // moves the changes back to the database
  crs.acceptChanges(con);
  } finally {
  if (con != null)
  con.close();
  }
  }

  //
  // Methods inherited from SessionBean
  //
 
  public void setSessionContext(SessionContext sc) {
  this.sc = sc;
  }
 
  public void ejbRemove() {}
  public void ejbPassivate() {}
  public void ejbActivate() {}

 
}


//////////////////client端//////////////
package example4;

import java.sql.*;
import javax.sql.*;
import sun.jdbc.rowset.*;
import javax.naming.*;
import javax.ejb.*;
import javax.Rmi.*;

class CoffeesClient {

  public static void main(String[] args) {

  try {
  // init the bean
  Context ctx = new InitialContext();
  object obj = ctx.lookup("ejb/Coffees");
  CoffeesHome coffeesHome = (CoffeesHome)
  PortableRemoteObject.narrow(obj, CoffeesHome.class);
  Coffees coffees = coffeesHome.create();
 
  // get the rowset from the bean
  CachedRowSet rset = (CachedRowSet)coffees.getCoffees();

  // find the Columbian coffee
  while (rset.next()) {
  String coffeeName = rset.getString("COF_NAME");
  if (coffeeName.equalsIgnoreCase(new String("Columbian"))) {
  // columbian coffee has Gone up 10%
  rset.updateFloat("PRICE",
  (float)(rset.getFloat("PRICE") * 1.10));
  rset.updateRow();
  }
  }

  // finally send the updated back to the bean...
  System.out.println("Calling update method");
  coffees.updateCoffees((RowSet)rset);
  }
  catch (Exception e) {
  System.out.println(e.getMessage());
  }
  }
}
例子很简单就不多讲了。
cheers.
Robin
12/27/2001

Any question .net">mailto:myvrml@263.net

上述就是小编为大家分享的EJB查询返回值的解决方法是什么呢了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: EJB查询返回值的解决方法是什么呢

本文链接: https://www.lsjlt.com/news/232482.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • EJB查询返回值的解决方法是什么呢
    这期内容当中小编将会给大家带来有关EJB查询返回值的解决方法是什么呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。关于EJB查询返回值的解决方法 多少天来,为此问题寝食难安,我曾发誓若我能解决这...
    99+
    2023-06-03
  • es查询返回指定字段的方法是什么
    在Elasticsearch中,要返回指定字段的方法是使用source过滤器。 source过滤器允许你在搜索请求中指定要返回的字...
    99+
    2023-10-24
    es
  • javascript方法返回值指的是什么
    这篇“javascript方法返回值指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“javascript方法返回值指...
    99+
    2023-07-06
  • mybatis-plus返回查询总记录数的方法是什么
    这篇“mybatis-plus返回查询总记录数的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mybatis-pl...
    99+
    2023-06-26
  • java mockito无返回值的方法是什么
    在使用Mockito时,如果要模拟一个无返回值的方法,可以使用doNothing()方法。例如: // 创建一个mock对象 Som...
    99+
    2024-03-13
    java
  • Mongoose find查询返回json数据处理的方法是什么
    这篇文章主要介绍“Mongoose find查询返回json数据处理的方法是什么”,在日常操作中,相信很多人在Mongoose find查询返回json数据处理的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-07-05
  • .NET提取Thread返回值的方法是什么
    这篇文章主要介绍“.NET提取Thread返回值的方法是什么”,在日常操作中,相信很多人在.NET提取Thread返回值的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.NET提取Thread返回值...
    99+
    2023-06-26
  • MyBatis查询数据返回null的解决
    MyBatis查询返回null 可能原因 SQL语句查询条件有问题数据库中没数据返回字段与Entity的属性不对应 解决方案 针对 SQL语句查询条件有问题、数据库中没数据...
    99+
    2023-02-05
    MyBatis返回null MyBatis查询返回null
  • JavaScript的返回值是什么
    这篇文章主要介绍“JavaScript的返回值是什么”,在日常操作中,相信很多人在JavaScript的返回值是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaSc...
    99+
    2024-04-02
  • pandas返回缺失值位置的方法是什么
    这篇文章主要为大家分析了pandas返回缺失值位置的方法是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“pandas返回缺失值位置的方法是什么”的知识吧...
    99+
    2023-06-26
  • php中exec没有返回值的解决方法
    这篇文章主要介绍了php中exec没有返回值的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php exec没有返回值的解决办法:首先查找exec调用代码;然后修改语...
    99+
    2023-06-15
  • Asp Conn.execute的返回值是什么
    `Conn.Execute` 方法是在 Classic ASP 中用于执行 SQL 查询或命令的方法。它返回一个表示查询结果的对象,...
    99+
    2023-08-14
    Asp
  • BaseMapper insert的返回值是什么
    BaseMapper 是 MyBatis 的一个接口,用于插入一条记录。该接口的 insert 方法返回值是 int 类型,表示插入记录的数量。如果插入成功,则返回 1;否则返回 0。 例如: int result = userMa...
    99+
    2023-09-08
    mybatis 数据库 java mysql sql
  • mysql回表查询优化的方法是什么
    MySQL回表查询是指在使用索引扫描后,仍需要通过主键再次访问表数据的操作。这种情况通常发生在需要查询的列不在索引中,或者是使用覆盖...
    99+
    2024-04-09
    mysql
  • mybatisplus返回string的方法是什么
    MyBatis Plus返回String的方法有多种,取决于你想要在什么情况下使用。 使用selectOne()方法:可以通过se...
    99+
    2023-10-30
    mybatisplus string
  • 返回最大值的index pytorch方式是什么
    这篇文章主要讲解了“返回最大值的index pytorch方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“返回最大值的index pytorch方式是什么”吧!返...
    99+
    2023-07-02
  • mysql insert返回值指的是什么
    本篇内容主要讲解“mysql insert返回值指的是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql insert返回值指的是什么”吧! ...
    99+
    2023-04-14
    mysql insert
  • Ajax的返回值类型是什么
    这期内容当中小编将会给大家带来有关Ajax的返回值类型是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、返回值之XML类型如果服务器的响应头中Content-type的内容为text/xml时,此时...
    99+
    2023-06-08
  • golang函数的返回值是什么?
    go 语言函数返回值是类型化的:函数返回值必须具有指定类型。函数可以返回多个值,使用逗号分隔,并可使用命名返回值提高可读性。未指定返回值类型的函数将返回空值(nil)。 Go 语言函数...
    99+
    2024-04-22
    返回值 golang
  • Golang 函数值返回的是什么?
    golang 函数可以返回多个值,在函数签名中指定返回值类型。例如,函数 sumandcheck(a, b int) 返回整数和布尔值。若要弃用未使用值,请使用下划线 _ 作为变量,例如...
    99+
    2024-04-14
    golang 函数值
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作