bean部分代码如下:
public Vector getData(String sql)
{
Vector vect=new Vector();
try
{ Connection conn=ConnBean.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int cols=rsmd.getColumnCount();
while(rs.next())
{
Hashtable hash=new Hashtable();
for(int i=1;i<=cols;i++)
{
String field=rsmd.getColumnClassName(i);
String value=rs.getString(i);
hash.put(field,value);
}
vect.add(hash);
}
}catch(SQLException sqle){}
return vect;
}
jsp部分页面如下:
<%
String sql="select * from book";
Vector vect=(Vector)editBook.getData(sql);
for(int i=1;i<vect.size();i++)
{
Hashtable hash=(Hashtable)vect.get(i);
String[] str=new String[4];
str[0]=(String)hash.get("bookId");
str[1]=(String)hash.get("bookName");
str[2]=(String)hash.get("publisher");
str[3]=(String)hash.get("price");
%>
<TABLE width="100%" align="center" border=1 brcolor=99ccff cellspacing="0" cellpadding="0" bordercolordark="#000000" bordercolorlight="#CCCC99">
<tr><td bgcolor="#CCCC99"><font size=2>id:</font></td>
<td colspan=3><%=str[0]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>name:</font></td>
<td><%=str[1]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>pb:</font></td>
<td>
<%=str[2]%>
</td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>price:</font></td><td colspan=3>
<%=str[3]%>
</td></tr>
</table>
<%
}
%>
显示结果老是NULL,请问问题是处在哪里啊,谢谢了
public Vector getData(String sql)
{
Vector vect=new Vector();
try
{ Connection conn=ConnBean.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int cols=rsmd.getColumnCount();
while(rs.next())
{
Hashtable hash=new Hashtable();
for(int i=1;i<=cols;i++)
{
String field=rsmd.getColumnClassName(i);
String value=rs.getString(i);
hash.put(field,value);
}
vect.add(hash);
}
}catch(SQLException sqle){}
return vect;
}
jsp部分页面如下:
<%
String sql="select * from book";
Vector vect=(Vector)editBook.getData(sql);
for(int i=1;i<vect.size();i++)
{
Hashtable hash=(Hashtable)vect.get(i);
String[] str=new String[4];
str[0]=(String)hash.get("bookId");
str[1]=(String)hash.get("bookName");
str[2]=(String)hash.get("publisher");
str[3]=(String)hash.get("price");
%>
<TABLE width="100%" align="center" border=1 brcolor=99ccff cellspacing="0" cellpadding="0" bordercolordark="#000000" bordercolorlight="#CCCC99">
<tr><td bgcolor="#CCCC99"><font size=2>id:</font></td>
<td colspan=3><%=str[0]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>name:</font></td>
<td><%=str[1]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>pb:</font></td>
<td>
<%=str[2]%>
</td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>price:</font></td><td colspan=3>
<%=str[3]%>
</td></tr>
</table>
<%
}
%>
显示结果老是NULL,请问问题是处在哪里啊,谢谢了
解决方案 »
- 超链接用绝对路径不可以吗?
- 多线程断点续传的问题
- 网页中加入applet 如何让class和网页在不同目录下
- 100分能帮忙的帮下
- jsp退出问题
- 怎么才能将一个1109001909445这样的时间戳转换为类似2004-2-22 10:45:53秒这样的格式?
- 关于两个下拉菜单的关联?
- 如何判断SessionID的有效性
- 问一个memcached的问题
- 严重: One or more Filters failed to start. Full details will be found in the appro
- httpSlient post数据后,接收数据的网页会自动刷新吗?
- 这是怎么回事啊!!!
<%
String sql="select * from book";
Vector vect=(Vector)editBook.getData(sql);
for(int i=1;i <vect.size();i++)
{
Hashtable hash=(Hashtable)vect.get(i);
String[] str=new String[4];
str[0]=(String)hash.get("bookId");
str[1]=(String)hash.get("bookName");
str[2]=(String)hash.get("publisher");
str[3]=(String)hash.get("price");
%>
<TABLE>
<tr> <td> id: </td> <td> <%=str[0]%> </td> </tr>
<tr> <td> name: </td> <td> <%=str[1]%> </td> </tr>
<tr> <td> pb: </td> <td> <%=str[2]%> </td> </tr>
<tr> <td>price: </td> <td> <%=str[3]%> </td> </tr>
</table>
<%
}
%>
String value=rs.getString(i);
这里取到值没?sql用select * from book的时候
这里的i的初始值是否要从0开始呀,再试试
在代码中插入,看看是哪步除了错!!
=》
for(int i=0;i <vect.size();i++)
还有,你确认你的字段是正确的???String field=rsmd.getColumnClassName(i);
System.out.println("field="+field); // 打印出来看看吧!
String value=rs.getString(i);
问题是处在这里
for(int i=1;i <=cols;i++)
{
String field=rsmd.getColumnClassName(i);
String value=rs.getString(i);
hash.put(field,value);
}
vect.add(hash)红色的地方应该是:
String field=rsmd.getColumn(i); 很不应该出现的错误
rsmd.getColumnClassName(i)打印出来的是字段的数据类型,rsmd.getColumn(i)才是字段的名字