CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

javabean里面rs.next()的问题,明明是有纪录的但是rs.next()总是返回false!

楼主douliang(豆豆)2004-04-01 22:53:13 在 Java / Web 开发 提问

很奇怪的说!  
  javabean里对应方法代码如下:  
  //------------------------------方法checkUser()---------------------------  
  //checkUser()方法用来检查用户名username是否已经存在  
  //如果重复返回一个true    
  public   boolean   checkUser()   {  
  ResultSet   rs   =   null;  
  boolean   flag   =   false;  
  if   (this.eusername   !=   null)   {  
  try   {  
  conn   =   DBConnection.getDBConnectionFromPool();  
  stmt   =   conn.createStatement();  
  String   sql   =  
  "select   username   from   euser   where   username='"  
  +   this.eusername  
  +   "'";  
  System.out.println(sql);  
  rs   =   stmt.executeQuery(sql);  
  if   (rs   !=   null)   {  
  if   (rs.next())   {  
  flag   =   true;  
  }   else   {  
  flag   =   false;  
  }  
  }  
  }   catch   (Exception   e)   {  
  //出错处理    
  System.err.println("EcardUser.checkUser():   "   +   e.getMessage());  
  }   finally   {  
  try   {  
   
  if   (stmt   !=   null)   {  
  stmt.close();  
  }  
  if   (conn   !=   null)   {  
  conn.close();  
  }  
  }   catch   (Exception   e)   {  
  }  
  }  
   
  }  
  return   flag;  
   
  }  
  其中获取connection的方法为,配的是数据源,连接oracle数据库:  
  public   static   Connection   getDBConnectionFromPool()  
  throws   Exception   {  
  Context   ctx   =   new   InitialContext();  
  javax.sql.DataSource   ds   =   (javax.sql.DataSource)   ctx.lookup("jdbc/OracleDB");  
  return   (ds.getConnection());  
   
  }  
  结果在servlet里面调用checkUser()方法时候发现rs.next()总是返回false!尽管对应的sql在oracle里面执行返回是有结果集的!诡异!还请高人指点!!! 问题点数:100、回复次数:11Top

1 楼javacomte(基督山伯爵)回复于 2004-04-01 22:59:33 得分 0

有没有跟踪一下程序在执行rs.next()时rs里面有没有数据Top

2 楼lhbf(牧野)回复于 2004-04-01 23:02:31 得分 0

你可以到诸如jbuilderX之类的工具中调试一下你的这段代码,看rs   =   stmt.executeQuery(sql);  
  这个语句究竟执行没有。Top

3 楼douliang(豆豆)回复于 2004-04-01 23:06:01 得分 0

(rs   !=   null)返回的是true亚,相信里面是有数据的Top

4 楼douliang(豆豆)回复于 2004-04-01 23:06:38 得分 0

rs   =   stmt.executeQuery(sql);这句肯定是执行了得。  
  我用的WSAD5.0调试的Top

5 楼acumenwu(触不到的恋人)回复于 2004-04-02 00:34:58 得分 0

if   (rs.next())   {  
  flag   =   true;     //这里应该错的吧,查询出来的记录集不为空,flag=false才对  
  }   else   {  
  flag   =   false;  
  }  
   
  下面这个代码请你参考一下吧  
  public   boolean   checkUser(String   Username)  
  {  
      boolean   boadduser=false;  
      try{  
          String   sSql="select   *   from   register   where   username='"+Username+"'";  
          if((super.executeQuery(sSql)).next())  
              {  
                boadduser=false;  
                }  
  else  
  {  
  boadduser=true;  
  }  
  }  
  catch(Exception   e)  
  {  
  System.out.println("checkUser:"   +e.getMessage());  
  }  
  finally  
  {  
  return   boadduser;  
  }  
  }Top

6 楼wandou999(弯豆)回复于 2004-04-02 07:45:56 得分 0

if   (rs   !=   null)这句话多余!!Top

7 楼ty_work(ty_work)回复于 2004-04-02 08:16:35 得分 0

看看是不是数据库连成别人的了,如果返回FALSE说明有表但是确定表里没数据Top

8 楼rainshow(要学习的是那样多,时间却是那么的少)回复于 2004-04-02 08:23:47 得分 100

1   恩,要注意连接数据库的正确性,不要连到别的数据库上了  
  2   oracle数据库里能查询到数据,不一定就能显示出来,如果你是向oracle数据库里手动插入了数据而没有commit,那么是可以从数据库里查看到却不能用程序查看到。请确保插入数据后有commit。Top

9 楼amortal(7086)回复于 2004-04-02 08:29:26 得分 0

String   sql   ="select   username   from   euser   where   RTRIM(username)='"+   this.eusername  
  +   "'";Top

10 楼douliang(豆豆)回复于 2004-04-02 10:43:23 得分 0

很感谢大家的回答,今天早上来重新运行了一遍程序,就全好了!真神奇!  
  我估计是rainshow说的,当时往数据库里插入了数据却没有commit(我用的TOAD,还不熟悉,退出的时候才commit)  
  原来oracle是这样的:)  
  学习ing...  
  另外再请教一个小问题:oracle里面的Date字段,日期表示应该如何写?我试了象"9-9-2004"等等各种格式,都插不进去!请大虾指点!Top

11 楼rainshow(要学习的是那样多,时间却是那么的少)回复于 2004-04-08 08:21:26 得分 0

to_date('2004-4-8','YYYY-MM-DD')  
  to_date('2004-4-8   13:14:15','YYYY-MM-DD   HH24:MI:SS')Top

相关问题

  • set rs = db.Execute(SQL) 怎么返回总纪录数。用rs.recordcount返回的是-1
  • 用DAO连接数据库,如何根据纪录的内容找到对应的游标(rs)?
  • 添加纪录
  • 拷贝纪录
  • 怎样使用for each ... next 的方法浏览一个recordset对象的所有纪录
  • ado纪录求助
  • 纪录的序号??
  • RecordSet纪录指针
  • 如何选出纪录?
  • 格式话显示纪录

关键词

  • 数据库
  • 数据
  • 代码
  • 执行
  • oracle
  • sql
  • checkuser
  • rs
  • boadduser
  • eusername

得分解答快速导航

  • 帖主:douliang
  • rainshow

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo