当前位置: 技术问答>java相关
ejb如何返回数据集,我看的举例都是...?
来源: 互联网 发布时间:2015-03-13
本文导语: ejb如何返回数据集,我看的举例都是增加一条数据,在用一个测试客户。在具体应用中我该如何使用?用jsp访问该ejb吗? 后生有礼了? | Collection c = uTablehome.findAll(); Iterator i = c.iterator(); ...
ejb如何返回数据集,我看的举例都是增加一条数据,在用一个测试客户。在具体应用中我该如何使用?用jsp访问该ejb吗?
后生有礼了?
后生有礼了?
|
Collection c = uTablehome.findAll();
Iterator i = c.iterator();
while (i.hasNext()){
Object object = i.next();
uTable ut = (uTable) PortableRemoteObject.narrow(object,uTable.class);
ut.getter() //在这里,ut就已经是数据库中的一条记录了,用它的get类方法得到数据。
}
Iterator i = c.iterator();
while (i.hasNext()){
Object object = i.next();
uTable ut = (uTable) PortableRemoteObject.narrow(object,uTable.class);
ut.getter() //在这里,ut就已经是数据库中的一条记录了,用它的get类方法得到数据。
}
|
ejb的finder可以返回数据集,楼上的说法不对
以下摘自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;
}
以下摘自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;
}
|
我想说几点,使用entity bean返回一个实体数据集并不是象楼上所言一般不需要,的确实体bean是一个数据表行的体现,但在ejb体系中事务逻辑所指的1toN,Nto1,NtoN对应中,通过数据集finder反馈数据是十分方便的
finder是一个const操作(很抱歉用这个c++名词),也就是说是只读的,finder的操作不会对数据内容有改变,所以返回一个数据集也是安全的,虽然在finder操作后事务逻辑为保持数据同步仍然会进行store和load
很典型的例子应用在定单与定单物品之间,可以通过数据集finder使用定单标识获取该定单所有的物品实体bean集合
finder是一个const操作(很抱歉用这个c++名词),也就是说是只读的,finder的操作不会对数据内容有改变,所以返回一个数据集也是安全的,虽然在finder操作后事务逻辑为保持数据同步仍然会进行store和load
很典型的例子应用在定单与定单物品之间,可以通过数据集finder使用定单标识获取该定单所有的物品实体bean集合
|
如何用Collection可以看一下API文档,其实Vector也是一种collection,你也可以直接用vcector来实现,在ejb中返回vector (vector实现了collection的接口!!!)
|
我刚看到一个很好的文章:用RowSet返回比vector要方便的多!!!!!
详细见:
http://developer.java.sun.com/developer/Books/JDBCTutorial/chapter5.html
http://www.chinajavaworld.com/