当前页面: 开发资料首页 → J2EE 专题 → 请问Jsp+JavaBean开发简单的Web程序时,Bean中的方法通常用什么来返回结果集?
请问Jsp+JavaBean开发简单的Web程序时,Bean中的方法通常用什么来返回结果集?
摘要: 请问Jsp+JavaBean开发简单的Web程序时,Bean中的方法通常用什么来返回结果集?
在Jsp中需要得向浏览器输出一结果集,请问在Bean中通常使用什么来返回结果集?ResultSet?Map?
比如:
public ResultSet method(){
}
或
public Map method(){
}
可以用 vector
把ResultSet的值放到 vector中
然后在jsp页面中把vector中的值打印出来
嗯,谢谢,那如果需要输出多个字段时用什么好呢?
输出多个字段的时候,我觉的Vector比较好
那如何将多个字段的数据放到一个Vector对象中呢?
返回的结果集通常不用更改的,用ArrayList应该可以兼顾效率和功能
还不是太明白,能否举个例子?
一个Vector或一个ArrayList不是只能保存一个字段的数据吗?
Vector 和Arraylist都是动态数组 可以存放一个或多个数据 两个容器都是可以动态添加我本人喜好用ArrayList
我个人比较喜欢用HashMap 来返回记录集..因为用Vector已经被淘汰来吧,而且运行起来也比较慢,如果用ArrayList虽然比较简单,但是好像里面的记录可以重复,你取出来的时候还需要判断比较麻烦,如果用HashMap就不一样了,进去是什么,出来只要用KEY取得对应的VALUE就行了,方便快捷!
这段程序希望对你有用
public Vector getData(String sql)
{
Vector vect = new Vector();
try
{
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
DealString ds = new DealString();
ResultSetMetaData rsmd = rs.getMetaData();
int cols = rsmd.getColumnCount();
while(rs.next())
{
Hashtable hash = new Hashtable();
for(int i=1;i<=cols;i++)
{
String field = ds.toString(rsmd.getColumnName(i));
String value = ds.toString(rs.getString(i));
hash.put(field,value);
}
vect.add(hash);
}
}catch(SQLException sqle){System.out.println("执行DataBase::getData(String)执行SQL语句 "+sql+" 时出错;错误为:"+sqle);}
finally{
if(rs!=null){
try{
rs.close();
}catch(SQLException e){System.out.println("执行DataBase::getData(String)试图释放rs时出错;/r/n错误为:"+e);}
}
if(pstm!=null){
try{
pstm.close();
}catch(SQLException e){System.out.println("执行DataBase::getData(String)试图释放pstm时出错;/r/n错误为:"+e);}
}
}
return vect;
}
感谢以上各位的回复,我其实就是想弄明白,如果一个返回的结果集中有5个字段(比如有:新闻ID,新闻标题,新闻内容,作者,发布日期),想一次性返回给Jsp进行循环输出到浏览器,该怎么处理?我个人觉得用HashMap、Hashtable、Vector这些好像还是不太方便呀
用 Hashtable 把数据库中得到的多个值保存进来
在把多个Hashtable 保存到 Vector中
把Vector返回到前台页面
再相反的顺序循环读出来
是麻烦了点
直接返ResultSet吧
不过在jsp页面,要import java.sql.* 要得到Connection
最后还用while(rs.next()){
rs.getString();==
----
}
循环显示出来
我是这样做的,估计落后了,不知怎么对才好,我想这样效效也是不高的
还是HashMap,ArrayList,Vector,得到结果后直接在jsp页面揗环编历好一点吧
我一般用这三种形式,List或Map或List