TO lifetragedy(生活是场悲剧)

Carlson Wang 2003-01-13 09:18:17
我只想请教点技术上的问题:
你在http://expert.csdn.net/Expert/topic/1147/1147775.xml?temp=.8791468一文中提到的那个解决方法我有点疑问,请教一下可以吗?

来写一个find方法命名为findMaxId :
SELECT OBJECT s FROM STUDENT(s)
好,然后,手改jboss-cmp.xml文件(我用的是JBOSS3)在jboss3中写入jboss ql语句(一种独立于ejbql的语句),因为ejb ql不提供SUM,MAX,ORDER BY这些东西,所以给人骂死了,但在2。1中将提供,到时,就要爽翻了
<query>
<description/>
<query-method>
<method-name>findMaxItem</method-name>
<method-params>
</method-params>
</query-method>
<jboss-ql>
<![CDATA[SELECT OBJECT(m) FROM Message m ORDER BY m.titleid DESC]]>
</jboss-ql>
</query>
OK,现在可以写CMP的代码喽:
long tid=getMaxItem();
tid+=1.0;
MessageHome messageHome=getMessageHome();
Message mbean=messageHome.create(new Long(tid),bounds,
java.sql.Timestamp.valueOf(messageTime),
content,title,mood,pid,
picture,space);
getMaxItem()的代码如下:
try{
Collection c=getMessageHome().findMaxItem();
Iterator it=c.iterator();
if(it.hasNext()){
Message mbean=(Message)it.next();
String tempstr=""+mbean.getTitleid();
int max=Integer.parseInt(tempstr);
return max;
}
else
{
return 0;
}
}catch(Exception ee){
return 0;
}

问题1:getMessageHome()是什么用法,为什么可以用这个方法?要在什么地方定义什么吗?
问题2:findMaxItem()和getMaxItem()要在哪里定义?实现方法写在哪里?
问题3:如果表中的数据很多的时候,用这种从第一个记录一直找到最后一个得到最大ID的方法是否太耗资源?
...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jatom 2003-01-13
  • 打赏
  • 举报
回复
1,getMessageHome()其实是将查找MessageHome的步骤封装在一个这个方法里,不定以也可以
2,findMaxItem()在home接口里定义,如果用cmp那么在此entity bean的实现里要加上public abstract void ejbFindMaxItem(),然后再ejb-jar.xml中加入
<query>
<method>
<method-name>findMaxItem</method-name>
<method-params>
<param>....</param>
</method-params>
和getMaxItem()

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧