当前位置: 技术问答>java相关
在数据库中要读取大量的数据,用什么方法把读出来的数据返回给页面合适。
来源: 互联网 发布时间:2015-05-15
本文导语: 在数据库中要读取大量的数据,用什么方法把读出来的数据返回给页面合适。 | 1、传统作法:把读出的数据放在ArrayList里(建议不用Vector),然后request.setAttribute()进去,然后在jsp页面request.getA...
在数据库中要读取大量的数据,用什么方法把读出来的数据返回给页面合适。
|
1、传统作法:把读出的数据放在ArrayList里(建议不用Vector),然后request.setAttribute()进去,然后在jsp页面request.getAttribute()出来,然后循环显示。
2、好点的作法:用RowSet来实现,主要的是CachedRowSet类,它可以让你象用ResultSet那样操作数据结果集,很方便的。在J2EE里提供,如果不是用的j2ee,你可以从SUN网站下一个实现(因为大多数jdbc只提供了RowSet的接口但没有实现,SUN提供了一个实现CachedRowSet和WebRowSet等实现,真得不错。
2、好点的作法:用RowSet来实现,主要的是CachedRowSet类,它可以让你象用ResultSet那样操作数据结果集,很方便的。在J2EE里提供,如果不是用的j2ee,你可以从SUN网站下一个实现(因为大多数jdbc只提供了RowSet的接口但没有实现,SUN提供了一个实现CachedRowSet和WebRowSet等实现,真得不错。
|
数据的动态提取
动态数组
//将查询结果赋给RS变量
…
ResultSet rs = stmt.executeQuery (sql);
//定义Vector变量
Vector v1 = new Vector();
Vector v2 = new Vector();
Vector v3 = new Vector();
//将查询结果赋给Vector
while (rs.next()) {
String STRDT = rs.getString(1);
String SCDBL = rs.getString(2);
String SDBBL = rs.getString(3);
v1.add(STRDT);
v2.add(SCDBL);
v3.add(SDBBL);
}
//以Vectro的长度定义数组长度,注意参数必须是字符型。
String[] TRDT = new String[v1.size() ];
String[] CDBL = new String[v2.size() ];
String[] DBBL = new String[v3.size() ];
//将Vector中的数值赋给新定义的数组
v1.copyInto(TRDT) ;
v2.copyInto(CDBL) ;
v3.copyInto(DBBL) ;
动态数组
//将查询结果赋给RS变量
…
ResultSet rs = stmt.executeQuery (sql);
//定义Vector变量
Vector v1 = new Vector();
Vector v2 = new Vector();
Vector v3 = new Vector();
//将查询结果赋给Vector
while (rs.next()) {
String STRDT = rs.getString(1);
String SCDBL = rs.getString(2);
String SDBBL = rs.getString(3);
v1.add(STRDT);
v2.add(SCDBL);
v3.add(SDBBL);
}
//以Vectro的长度定义数组长度,注意参数必须是字符型。
String[] TRDT = new String[v1.size() ];
String[] CDBL = new String[v2.size() ];
String[] DBBL = new String[v3.size() ];
//将Vector中的数值赋给新定义的数组
v1.copyInto(TRDT) ;
v2.copyInto(CDBL) ;
v3.copyInto(DBBL) ;
|
类Vector是Java的历史集合类,隶属于java.util包。它包装了异构链表和数组杂合体,具有以下两个特点:
* 向量是异构的,不要求每个元素的类型相同,向量中可以混合多种对象类型;
* 向量是数组杂合体,因为它们可以在增加元素时动态增大。
其异构性正好符合数据库记录中属性类型不一的特点,而其动态性也正好符合数据库查询时,结果集记录个数不定的特点。
类Vector定义如下:
public class Vector extends AbstractList
implements List , Cloneable , Serializable{…}
实现了向量成员的查找、新增、删除等方法。如:add(Object obj)可方便地加入一个对象;get(int index)可方便地得到向量中的一个对象;remove(Object obj)则可方便地删除向量中一个对象。
* 向量是异构的,不要求每个元素的类型相同,向量中可以混合多种对象类型;
* 向量是数组杂合体,因为它们可以在增加元素时动态增大。
其异构性正好符合数据库记录中属性类型不一的特点,而其动态性也正好符合数据库查询时,结果集记录个数不定的特点。
类Vector定义如下:
public class Vector extends AbstractList
implements List , Cloneable , Serializable{…}
实现了向量成员的查找、新增、删除等方法。如:add(Object obj)可方便地加入一个对象;get(int index)可方便地得到向量中的一个对象;remove(Object obj)则可方便地删除向量中一个对象。