Servlet查询数据库,将结果存为数组。如何将此数组的值保存在bean中(用来在jsp显示)!200

xinlimei 2003-09-15 11:45:33
给出代码者 愿200分相送!!
简单点也没有关系!

servlet 中保存数组至bean中的代码 和 bean的代码~!

谢谢!!

另外小弟还想明白bean和session之间的关系。
我的jsp页面 bean 的作用域 用什么 ?为什么 ?

谢谢了
...全文
171 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
noratong 2003-09-16
  • 打赏
  • 举报
回复
对呀,加上你先前写的那两个方法就可以使你的bean里有个数组属性。

然后剩下的就是在servlet中调用。
ji66 2003-09-16
  • 打赏
  • 举报
回复
在与表对应的Bean BookBean中 有setName(),getName()
取得结果集ResultSet rs
BookBean bbnew BookBean;
List lst=new ArrayList();

while(rs.next()){
bb.setName(rs.getString("name"));
lst.add(bb);

}

在jsp使用时
Iterator it=lst.iterator();
while(it.hasNext()){
bb=(BookBean)it.next();
String name=bb.getName();
}

<%=name%>就可以输出了
xinlimei 2003-09-16
  • 打赏
  • 举报
回复
noratong(诺拉) 是改成这样吗??!!!!!!!!!!!!!!
帮小弟看看啊!
这样改了之后 如何在servlet中把所有的数组内所有的值都存到bean中 ?
在jsp里如何显示 ????
请给点代码啊 !!!
谢谢了 !!!

package Bean;
import java.lang.*;
import java.util.*;

public class YHTZbean
{
private String ResultArray[][];

public YHTZbean()
{
}

public void setResultArray(int i,int j,String value)
{
this.ResultArray[i][j] = value;
}

public String getResultArray(int i,int j)
{
return ResultArray[i][j];
}
}
kingssman 2003-09-15
  • 打赏
  • 举报
回复
希望对你能有所帮助
iCount = dcm.getRowCount("e_dept", "status=\'1\'");//记录条数
sDName = new String[iCount];
int i = 0;
while (rs.next()) {
sDName[i] = rs.getString(1);
i++;
}
//set deptnames
reportStore.setDname(sDName);


private String sDName[];
public void setDname(String[] value) {
this.sDName = value;
}

/**
*
* @return dept names
*/
public String getDname() {
StringBuffer StrData = new StringBuffer();
if (sDName == null) {
StrData.append("无");
} else if (! (sDeptName == null)) {
StrData.append("<option value=\"所有部门\">所有部门</option>");
for (int i = 0; i < sDName.length; i++) {
if (sDName[i].equals(sDeptName)) {
StrData.append("<option value=\"" + sDeptName + "\" selected>" +
sDeptName +
"</option>");
}
if (sDName[i].equals(sDeptName)) {
continue;
}
StrData.append("<option value=\"" + sDName[i] + "\">" + sDName[i] +
"</option>");
}
} else {
StrData.append("<option value=\"所有部门\" >所有部门</option>");
for (int i = 0; i < sDName.length; i++) {
StrData.append("<option value=\"" + sDName[i] + "\">" + sDName[i] +
"</option>");
}
}
return StrData.toString();
}
HPFYEAH 2003-09-15
  • 打赏
  • 举报
回复
servlet中
QueryBean queryBean = new QueryBean();
//查询部分,值返回到rs之中
queryBean.setArray(rs.getInt("num"));//num为查询项
return queryBean;

bean中
private int array[10];

public void setArray(int array[10])
{
this.array[10] = array[10];
}
public int getArray()
{
return array[10];
}
xinlimei 2003-09-15
  • 打赏
  • 举报
回复
不太明白啊
谢谢了
yaray 2003-09-15
  • 打赏
  • 举报
回复
public class ArrayTest{

Vector v = new Vector();

public void getDatas(){
....;
while(rs.next()){
v.add(rs.getString1));
....
}
}
public String[] getArray(){
return (String)v.toArray();
}
}
sunxuwen 2003-09-15
  • 打赏
  • 举报
回复
查询数据库不应该在SERVLET中而应该在BEAN中把结果放在数组中,在SERVLET里接收这个数组,再存到SESSION中,最后才在JSP里取SESSION中的内容也就是你那个结果集数组
kaibinsj 2003-09-15
  • 打赏
  • 举报
回复
数组保存俺一般用Vector().
bean的scope你声明为session,那它就是一个session了。
当然你还可以声明为其他范围page,request...
noratong 2003-09-15
  • 打赏
  • 举报
回复
bean里可以有数组型的属性,我觉得你的bean可行呀,不过代码要改一下,应该给两组get、set方法,一组是设置数组本身的,一组是设置数组每个成员的(set方法里传进三个参数,数组的一维序号和二维序号,好确定是那个成员,第三个传要设置的值;get只用两个,用来确定是那个成员)。

然后在servlet中就可以自由调用了。
squallzeng 2003-09-15
  • 打赏
  • 举报
回复
GZ O也正在想这个问题*-*
9731boy 2003-09-15
  • 打赏
  • 举报
回复
to kingssman() :

:)
kingssman 2003-09-15
  • 打赏
  • 举报
回复
呵呵,上面那些话时说给9731boy(杯子--路边的杯子不要踩)听的,你不用看那个 :)
kingssman 2003-09-15
  • 打赏
  • 举报
回复
public class KqReportStoreBean {
private String sReport[][];

public void setReport(String[][] value) {
this.sReport = value;
}

/**
*
* @return report list
*/
public String getReport() {
StringBuffer StrData = new StringBuffer();
if (sReport == null) {
StrData.append("无");
} else {
for (int i = 0; i < sReport.length; i++) {
//StrData.append("<p>");
for (int j = 0; j < 8; j++) {
if (sReport[i][j] == null) {
sReport[i][j] = "";
}
}
StrData.append("<tr>");
StrData.append("<td width='20'></td>");
StrData.append("<td align='left'>");
StrData.append(sReport[i][0]);
StrData.append("</td><td align='left' height='15'>");
StrData.append(sReport[i][1]);
StrData.append("</td><td align='left'>");
StrData.append(sReport[i][2]);
StrData.append("</td><td align='right'>");
StrData.append(sReport[i][3]);
StrData.append("</td><td align='right'>");
StrData.append(sReport[i][4]);
StrData.append("</td><td align='right'>");
StrData.append(sReport[i][5]);
StrData.append("</td><td align='right'>");
StrData.append(sReport[i][6]);
StrData.append("</td><td align='right'>");
StrData.append(sReport[i][7]);
StrData.append("</td>");
StrData.append("<td width='20'></td>");
StrData.append("</tr>");
}
}
return StrData.toString();
}

下面是用来查数据库的bean
String[][] sRList;
iDCount = iDCount + 1;
sRList = new String[iDCount][8];
int j = 0;
int m = 0;
//get report data and set to the store bean
while (rs.next()) {

sRList[j][0] = rs.getString(2);
sRList[j][1] = rs.getString(3);
sRList[j][2] = rs.getString(4);
sRList[j][3] = String.valueOf(rs.getFloat(5));
sRList[j][4] = String.valueOf(rs.getFloat(6));
sRList[j][5] = String.valueOf(rs.getFloat(7));
sRList[j][6] = String.valueOf(rs.getFloat(8));
cstmt2 = conn.prepareCall("{call zr.GETQUITSLEAVE(?,?,?,?)}");
cstmt2.setInt(1, Integer.parseInt(sYear));
cstmt2.setInt(2, Integer.parseInt(sMonth));
cstmt2.setLong(3, Integer.parseInt(rs.getString(1)));
cstmt2.registerOutParameter(4, java.sql.Types.NUMERIC);
cstmt2.executeQuery();

sRList[j][7] = String.valueOf(cstmt2.getFloat(4));
cstmt2.close();
j++;

}
reportStore.setReport(sRList);
xinlimei 2003-09-15
  • 打赏
  • 举报
回复
没明白您的意思啊
我就是查询一次啊
请帮忙看看关于二维数组的问题吧
kingssman 2003-09-15
  • 打赏
  • 举报
回复
可以设置一个标志位来控制是否重新查询数据库呀,这样我第一次取出来的东西以后就可以直接用,而不用去查数据库了,这样会提高访问速度吧?
xinlimei 2003-09-15
  • 打赏
  • 举报
回复
我的bean 代码 如下 :

package Bean;
import java.lang.*;
import java.util.*;

public class YHTZbean
{
private String ResultArray[][] = new String[][]{};

public YHTZbean()
{
}

public void setResultArray(String resultarray[][])
{
this.ResultArray = resultarray;
}

public String[][] getResultArray()
{
return ResultArray;
}
}


大家看可以吗?

如何在servlet中将二维数组 存入!
最重要的 这个二维数组 如何能在jsp 中显示呢 ????????
9731boy 2003-09-15
  • 打赏
  • 举报
回复
其实放在数组很容易影响速度的.特别是访问量大的话.我一般是在分页的时候才用数组.
kingssman 2003-09-15
  • 打赏
  • 举报
回复
是的。
kingssman 2003-09-15
  • 打赏
  • 举报
回复
这个是servlet里的,上面那是两个bean,一个查询数据,一个存储数据
KqReportDBBean dbb = new KqReportDBBean();
KqReportStoreBean report = dbb.getStoreBean();
request.setAttribute("report", report);
加载更多回复(2)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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