每个Entity Bean 对象一般都是数据库的视图,对应着数据库中唯一的一块数据(可近似认为是连接查询出来的一条数据),对Bean 操作实际上是对其对应的数据库进行的,例如:银行账户,是一个最经典的例子,几乎每本书上都有这个例子,是由数据库中的多个表中的字段组成的,具有唯一性,
Entity Bean 的 Finder 方法可以返回实体bean 主键的集合(枚举),实际上就是返回的数据库中的主键值的集合,不知道是不是你要得数据集。可以看一下 BMP 实体Bean 得开发,它的操作都是用sql 语句直接对数据库操作。我也是刚刚开始学,理解的不对的地方请大家原谅,互相学习吧
Entity Bean 的 Finder 方法可以返回实体bean 主键的集合(枚举),实际上就是返回的数据库中的主键值的集合,不知道是不是你要得数据集。可以看一下 BMP 实体Bean 得开发,它的操作都是用sql 语句直接对数据库操作。我也是刚刚开始学,理解的不对的地方请大家原谅,互相学习吧
解决方案 »
- twitter api如何使用?在线等~~
- sso -cas jndi验证页面跳转不到你想要登陆的页面
- tomcat5.5 连接池
- 一道关于树形结构存储的算法题
- 关于培训的问题。
- java邮箱注册验证激活问题!
- XML的Public ID和System ID!!
- weblogic8.1不知是何原因的问题
- weblogic的问题?
- 新手求问!Spring整合Hibernate,在annotatedClasses定义了实体类,还能在spring容器中使用bean标签定义相同的实体类吗
- 最简单最慢的java居然有这么多的人这么热心,可悲。j2ee算个球
- 有个J2EE项目我想选择LINUX平台,最近在尝试阶段大家给点意见好么?
楼上所说不错,为什么要返回一个数据集呢?每个实体Bean对应一条记录的,要返回多个记录可以把数据集变成一个Collection(注意只是主键的collection而已不是全部记录字段的collection)。
以下摘自j2ee文档:
The Finder Methods
The finder methods allow clients to locate entity beans. The SavingsAccountClient program locates entity beans with three finder methods: SavingsAccount jones = home.findByPrimaryKey("836");
...
Collection c = home.findByLastName("Smith");
...
Collection c = home.findInRange(20.00, 99.00);
For every finder method available to a client, the entity bean class must implement a corresponding method that begins with the prefix ejbFind. The SavingsAccountBean class, for example, implements the ejbFindByLastName method as follows: public Collection ejbFindByLastName(String lastName)
throws FinderException {
Collection result;
try {
result = selectByLastName(lastName);
} catch (Exception ex) {
throw new EJBException("ejbFindByLastName " +
ex.getMessage());
}
return result;
}
finder是一个const操作(很抱歉用这个c++名词),也就是说是只读的,finder的操作不会对数据内容有改变,所以返回一个数据集也是安全的,虽然在finder操作后事务逻辑为保持数据同步仍然会进行store和load
很典型的例子应用在定单与定单物品之间,可以通过数据集finder使用定单标识获取该定单所有的物品实体bean集合
ejb:uTable我用此方法得到纪录的数量
Collection c = uTablehome.findAll();
下一步如何取出每一条纪录的值呢?
To xiangqian(天阁流云):你弄错了,这个集不是那个集。实体bean是可以返回Collection的,这点谁都知道,但不是ResultSet!
ejb:uTable我用此方法得到集合
Collection c = uTablehome.findAll();
下一步如何取出每一条的值呢?可以了吧!
我这样他说不对:
Iterator i = c.iterator();
uTable ut = (uTable)i.next(); //这错了
或
ejb如何浏览一个表中的值呢?
我到现在连ejb到底是个什么东东还不太明白。:_<
Collection c = uTablehome.findAll();
下一步如何取出每一条的值呢?可以了吧!
我这样他说不对:
Iterator i = c.iterator();
uTable ut = (uTable)i.next(); //这错了没有人可以告诉我Collection 如何使用吗?
我刚学不久,大家拉一把!
如何用Collection可以看一下API文档,其实Vector也是一种collection,你也可以直接用vcector来实现,在ejb中返回vector (vector实现了collection的接口!!!)
:) 不好意思,我看错了,我楼上说的是resultset,我就着说下去了。而且我也说了用collection。但是书上有很多都是用collection返回,不存在什么书上没有例子的问题。
Iterator i = c.iterator();while (i.hasNext()){
Object object = i.next();
uTable ut = (uTable) PortableRemoteObject.narrow(object,uTable.class); ut.getter() //在这里,ut就已经是数据库中的一条记录了,用它的get类方法得到数据。
}
我刚看到一个很好的文章:用RowSet返回比vector要方便的多!!!!!详细见:
http://developer.java.sun.com/developer/Books/JDBCTutorial/chapter5.html
http://www.chinajavaworld.com/