CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

连接数据库时一个NullPointerException的错误.情指教

楼主sptbo(竹蜻蜓)2004-05-01 20:57:24 在 Java / Web 开发 提问

我在一个连接数据苦的文件中,有一个NullPionterException的错误.源码如下.请指教谢谢!  
   
  import   java.sql.*;  
   
  public   class   ConsumerMy   extends   Thread   {  
          private   CubbyHoleMy   cubbyhole;  
          private   String   name,id,subject,score,rescore,term;  
          private   String   sql,output;  
          sql_data   sqldata;  
          ResultSet   rs   =   null;  
           
          public   ConsumerMy(CubbyHoleMy   c)   {  
                  cubbyhole   =   c;  
          }  
           
          public   void   run(){  
                  try{  
                          rs   =   sqldata.executeQuery("SELECT   *   FROM   StTable");//错误行      
                          while   (rs.next())   {  
                                  name   =   rs.getString("name");  
                                  System.out.println("姓名:   "   +   name);  
                          }  
                          System.out.println("rs.next()=   null");  
                          rs.close();  
                  }  
                   
                  catch(SQLException   ex)  
                  {System.out.println("Got   SQLException:   "   +   ex.toString());}  
                  catch(NullPointerException   ex)  
                  {System.out.println("in   the   Null   Pointer   Exception");}  
   
          }  
  }  
   
  sql_data里面定义了数据库连接和executeQuery()   应该都没有问题. 问题点数:100、回复次数:15Top

1 楼sptbo(竹蜻蜓)回复于 2004-05-01 21:05:13 得分 0

-----------------------------------sql_data.java---------------------------------  
   
  import   java.sql.*;  
   
  public   class   sql_data  
  {  
      String   sDBDriver   =   "sun.jdbc.odbc.JdbcOdbcDriver";  
      String   sConnStr   =   "jdbc:odbc:StTable";  
      Connection   conn   =   null;  
      ResultSet   rs   =   null;  
      public   sql_data()   //构造函数  
      {  
          try  
          {  
              Class.forName(sDBDriver);  
          }  
          catch(java.lang.ClassNotFoundException   e)  
          {  
              System.err.println("sqldata():"   +   e.getMessage());  
          }  
      }  
   
      public   void   executeInsert(String   sql)   //加入数据  
      {  
              try{  
                      conn   =   DriverManager.getConnection(sConnStr);  
                      Statement   stmt   =   conn.createStatement();  
                      stmt.executeUpdate(sql);  
              }catch(SQLException   ex)  
              {  
                      System.err.println("sql_data.executeUpdate:"   +   ex.getMessage());  
              }  
      }  
   
      public   ResultSet   executeQuery(String   sql)   //其他数据库操作  
      {  
          rs   =   null;  
          try  
          {  
              conn   =   DriverManager.getConnection(sConnStr);  
              Statement   stmt   =   conn.createStatement();  
              rs   =   stmt.executeQuery(sql);  
          }  
          catch(SQLException   ex)  
          {  
              System.err.println("sqldb.executeQuery:"   +   ex.getMessage());  
          }  
          return   rs;  
      }  
  }  
  Top

2 楼caiyi0903(willpower)回复于 2004-05-01 21:27:54 得分 0

用JB设置断点debug一下看哪里参数传过去为NULL不就知道了?Top

3 楼sptbo(竹蜻蜓)回复于 2004-05-01 21:35:51 得分 0

rs   =   sqldata.executeQuery("SELECT   *   FROM   StTable");//错误行      
   
  这个是空的.错误行.Top

4 楼lovechineseboy(蓝太阳)回复于 2004-05-01 21:44:49 得分 0

检查以下你是否连上数据库没有Top

5 楼sptbo(竹蜻蜓)回复于 2004-05-01 21:52:04 得分 0

怎么检查???把代码都写到一个文件里没问题的,可以正常显示数据库里的东西.Top

6 楼qingzhuang(半片云)回复于 2004-05-02 00:49:23 得分 0

支持,我经常遇到这样的问题,很烦恼Top

7 楼vongood((my c++))回复于 2004-05-02 01:33:29 得分 0

upTop

8 楼sptbo(竹蜻蜓)回复于 2004-05-02 11:44:07 得分 0

大侠们帮忙啊!!!Top

9 楼xiangbo520(充栋汗牛)回复于 2004-05-02 12:01:51 得分 0

sun.jdbc.odbc.JdbcOdbcDriver这个驱动程序不支持多个连接,你的第一个类里面怎么还有多线程啊!Top

10 楼peigen(比碗浅)回复于 2004-05-02 12:50:48 得分 0

没看到forname阿  
   
  Top

11 楼sptbo(竹蜻蜓)回复于 2004-05-02 13:11:12 得分 0

有fornameTop

12 楼sptbo(竹蜻蜓)回复于 2004-05-02 13:13:48 得分 0

我用了多线程,但只有一个线程和数据库连接,别的没有连接.Top

13 楼fuzuyuan(happyboy)回复于 2004-05-02 13:35:49 得分 100

你的sql_date   sqldata;就是这样定义的吗?  
  你没有对它实例化吧,这样当然是一个空指针了!  
  应该这样  
  sql_date   sqldata=new   sql_date();Top

14 楼sptbo(竹蜻蜓)回复于 2004-05-02 13:45:06 得分 0

OK!问题解决!谢谢!!!给分了   !哈哈!!Top

15 楼sptbo(竹蜻蜓)回复于 2004-05-02 13:47:17 得分 0

能不能再顺便说一下,引起所无的原因?内存中怎么样的???Top

相关问题

  • 数据库连接错误
  • 数据库链接错误??
  • 数据库 错误 急!!!!!!!!!!!!!!!!
  • 数据库出现错误
  • 数据库写入错误:
  • 连接数据库错误
  • 数据库连接错误
  • 数据库连接错误
  • 连接数据库错误
  • 数据库取值错误

关键词

  • 数据库
  • 连接
  • date
  • sql
  • null
  • sqldata
  • 错误
  • executequery
  • rs
  • println

得分解答快速导航

  • 帖主:sptbo
  • fuzuyuan

相关链接

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

广告也精彩

反馈

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