servlet +mysql 出现的奇怪的查询问题 resultset

channel 2003-06-01 07:27:49
我的环境:jdk 1.4+ tomcat 4.1.18+mysql 3.23.56 +win2k pro
代码如下:
String chaxun="SELECT * FROM lhzxt001";
ResultSet result=dccon.executeQuery(chaxun);
ResultSetMetaData metadata=result.getMetaData();
int columns=metadata.getColumnCount();
out.println("columns is"+columns);
System.out.println(metadata.getColumnName(1));--------(3)
String username=result.getString("dcUserName"); -----(1)
//String username=result.getString(1); --------------(2)
System.out.println(username);

问题:程序执行到(1)出错
说在结果集中 cloumn 'dcUserName'找不到,也就是dcUserName这个字段找不到,但是,他在表中确实存在呀。现在前面的查询语句,确实被执行了,因为字段熟可以查到
可以打出来 columns is 12,也就是说表中有12字段,但是在(3)处,要求打出来字段名
却是什么都没有.为什么能查询,但是字段明确找不到呢?如果将(1)注释掉,执行(2)
,程序可以执行,但是打出来的却是一些 ooooo, 究竟是那里出问题了?还是我的环境配置有什么问题?mysql安装完后,不需要配置什么吧。
请高手指点,只要意见有益,就给分,不够在给




...全文
37 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
manzhi 2003-06-03
  • 打赏
  • 举报
回复
怎么回这样呢,我也用mysql,但没出现这种情况。
getString("dcUserName"); 表中dcUsrName字段是不是char或varchar类型呢,
channel 2003-06-03
  • 打赏
  • 举报
回复
ding
channel 2003-06-03
  • 打赏
  • 举报
回复
dcUserName 是varchar类型
channel 2003-06-03
  • 打赏
  • 举报
回复
up
channel 2003-06-03
  • 打赏
  • 举报
回复

result是个ResultSet 对像。当然打印出来是这样是正常的。

要取值得这样写



ResultSet result=dccon.executeQuery(chaxun);

while(result.next(){

out.println(result.getString(1));
}

这样的结果是,有的时候,就什么都没有,或者是ooooo
为什么会这样子。还有,getString(字段名)就会说,找不到字段名,是不是编码有问题?!
wangyanqiu 2003-06-03
  • 打赏
  • 举报
回复
现在还不行吗?

up?
dkmilk 2003-06-03
  • 打赏
  • 举报
回复
result是个ResultSet 对像。当然打印出来是这样是正常的。

要取值得这样写



ResultSet result=dccon.executeQuery(chaxun);

while(result.next(){

out.println(result.getString(1));
}
channel 2003-06-03
  • 打赏
  • 举报
回复
ResultSet result=dccon.executeQuery(chaxun);
out.println(result.toString());
结果是:
org.apache.commons.dbcp.DelegatingResultSet@1367e28
怎么会这样子
channel 2003-06-03
  • 打赏
  • 举报
回复
up
acefr 2003-06-02
  • 打赏
  • 举报
回复
你已经试过了?报什么错?你看看是不是对一个字段重复操作了?
channel 2003-06-02
  • 打赏
  • 举报
回复
我自己都觉得,出现这样的问题,很奇怪,是不是有些配置设置的不不对呀
channel 2003-06-02
  • 打赏
  • 举报
回复
用System.out. 我是为了在tomcat控制台里看
out.println()我也是过,不行的
现在的第一个问题是,为什么查询语句可以执行,但是用getString(字段名)却找不到字段名呢?
channel 2003-06-02
  • 打赏
  • 举报
回复
高手们帮忙呀
acefr 2003-06-02
  • 打赏
  • 举报
回复
1.在jsp里是用out.print的,不是System.out.print
2.试着这样执行一下,看看有没有结果。
String chaxun="SELECT * FROM lhzxt001";
ResultSet result=dccon.executeQuery(chaxun);
//ResultSetMetaData metadata=result.getMetaData();
//int columns=metadata.getColumnCount();
//out.println("columns is"+columns);
//out.println(metadata.getColumnName(1));--------(3)
String username=result.getString("dcUserName"); -----(1)
//String username=result.getString(1); --------------(2)
out.println(username);
3.结果如果是乱码那么要转码。
hhuzhj 2003-06-02
  • 打赏
  • 举报
回复
这样吧,你换一个数据库看看,换成sql2000或者别的什么的,再用你的源程序看看。看你的程序应该没有什么问题。
channel 2003-06-02
  • 打赏
  • 举报
回复
大家帮忙呀。。。
channel 2003-06-02
  • 打赏
  • 举报
回复
大家又没有人遇到和我类似的情况呢?
channel 2003-06-02
  • 打赏
  • 举报
回复
有没有人遇到过这样的情况呢?请高手们,帮忙解决以下了。。。我都快郁闷死了
channel 2003-06-02
  • 打赏
  • 举报
回复
现在是字段名,取不出来。。。为什么?
mcgovern 2003-06-02
  • 打赏
  • 举报
回复
还要注意取的顺序
加载更多回复(11)

81,094

社区成员

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

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