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

数据库问题????

楼主zwd2878(安东)2003-12-03 23:27:15 在 Java / Web 开发 提问

我写了个bulletins.properties文件  
  内容为:  
  db_driver=oracle.jdbc.driver.OracleDriver  
  db_url=jdbc:oracle:thin:@192.168.0.11:1521:orcl1  
  db_user=test  
  db_password=test  
   
  在java文件中,我通过下面方式调用  
   
  import   java.io.*;  
  import   javax.servlet.*;  
  import   javax.servlet.http.*;  
  import   java.util.*;  
  import   java.sql.*;  
   
  public   class   bulletinshttp   extends   HttpServlet  
  {  
  private   static   Properties   http_props   =   new   Properties();  
  private   static   String   db_Driver;  
  private   static   String   db_Url;  
  private   static   String   db_User;  
  private   static   String   db_Password;  
   
   
      Connection   connect;  
   
      public   void   init(ServletConfig   configuration)  
      throws   ServletException  
      {  
      super.init(configuration);  
   
      try  
          {  
    //   FileInputStream   infile   =   new   FileInputStream("/bulletins/bulletins.properties");  
   
  InputStream   infile   =   this.getClass().getResourceAsStream("/bulletins.properties");  
   
   
   
   
          http_props.load(infile);  
          db_Driver   =   http_props.getProperty("db_driver");  
          db_Url   =   http_props.getProperty("db_url");  
          db_User   =   http_props.getProperty("db_user");  
          db_Password   =   http_props.getProperty("db_password");  
   
   
   
          infile.close();  
          }  
      catch   (Exception   e)  
          {  
          System.out.println(e);  
          }  
      }  
   
      public   void   doGet(HttpServletRequest   req,   HttpServletResponse   resp)  
      throws   ServletException,   IOException  
      {  
      doPost(req,   resp);  
      }  
   
      public   void   doPost(HttpServletRequest   req,   HttpServletResponse   resp)  
      throws   ServletException,   IOException  
      {  
   
   
      PrintWriter   outhtml;  
   
      String   driver   =   db_Driver;  
      String   url   =   db_Url;  
      String   user   =   db_User;  
      String   password   =   db_Password;  
      String   urlextrapath;  
   
      resp.setContentType("text/html");  
      outhtml   =   resp.getWriter();  
   
  /*  
      outhtml.println   ("driver   =   "+driver);  
      outhtml.println   ("url   =   "+url);  
      outhtml.println   ("user   =   "+user);  
      outhtml.println   ("password   =   "+password);  
  */  
   
      try  
          {  
          Class.forName(driver);  
          connect   =   DriverManager.getConnection("url",   "user",   "password");  
          urlextrapath   =   req.getPathInfo();  
          bulletins   bltn   =   new   bulletins();  
          bltn.connect   =   connect;  
          Enumeration   enum   =   req.getParameterNames();  
   
   
  …………………………………………………………………………  
   
  …………  
   
          }  
  catch(ClassNotFoundException   e)  
  {  
  outhtml.println   ("Cannot   load   driver:"+   e.getMessage   ());  
  }  
  catch(SQLException   e)  
  {  
  outhtml.println   ("SQLException:   "+e.getMessage   ());  
  }  
  finally  
  {  
  try  
  {  
  if(connect!=null)  
  connect.close   ();  
  }  
  catch(SQLException   ignored)  
  {}  
   
  }  
      }  
  }  
   
   
   
  另外,在tomcat的common/lib里面已经加了class12.jar及class12.zip  
   
  可是最后测试时:却捕捉到下面的错误(在html页面上)  
   
  SQLException:   No   suitable   driver    
   
   
  请高手指点,如何调试??  
   
  万分感谢:) 问题点数:40、回复次数:14Top

1 楼ladofwind(随风)回复于 2003-12-04 01:24:08 得分 0

晕Top

2 楼lijong29909(我爱洗澡)回复于 2003-12-04 01:37:23 得分 0

注册驱动的驱动名称写错了Top

3 楼lijong29909(我爱洗澡)回复于 2003-12-04 02:15:58 得分 20

4.2.     My   application   throws   a   SQLException   'No   Suitable   Driver'.   Why   is   this   happening?  
     
    One   of   two   things   are   happening.   Either   the   driver   is   not   in   your   CLASSPATH   (see   the   "INSTALLATION"   section   above),   or   your   URL   format   is   incorrect   (see   "Developing   Applications   with   MySQL   Connector/J").  
     
  mysql上面的Top

4 楼xuewuz(溟鱼)回复于 2003-12-04 08:17:47 得分 0

你的属性文件是否真的读进来了?看看   db_Driver=“oracle.jdbc.driver.OracleDriver"?Top

5 楼mysam(小天下人)回复于 2003-12-04 08:30:59 得分 0

你的驱动好像加载错了Top

6 楼qiume(好好回贴,天天胖胖)回复于 2003-12-04 08:52:55 得分 0

SQLException:   No   suitable   driver    
   
  加载驱动错误Top

7 楼zwd2878(安东)回复于 2003-12-04 11:13:55 得分 0

我试了,db_Driver能读出来。  
   
   
  如果我在server文件中也做了连数据库的设置,在servlet中如上所示,会不会冲突呀?  
   
  Top

8 楼cocosunshine(panxj)回复于 2003-12-04 11:23:15 得分 0

倒,你为什么不用HASHMAP读呢~~Top

9 楼cocosunshine(panxj)回复于 2003-12-04 11:25:56 得分 0

我前一段用HASHMAP做了一个类似的~~Top

10 楼hymarx(哇噻)回复于 2003-12-04 11:30:50 得分 10

Class.forName(driver);  
  把driver   debug出来看看  
  再看看这个方法的返回值  
  很哟可能是classpath问题,在环境变量里把class12.jar加进去看看  
  connect   =   DriverManager.getConnection("url",   "user",   "password");  
  Top

11 楼zwd2878(安东)回复于 2003-12-06 03:03:18 得分 0

HASHMAP  
  俺还没有用过:)不知道怎么用,  
  高手可以教教俺吗,谢谢:)Top

12 楼zwd2878(安东)回复于 2003-12-06 03:10:31 得分 0

俺试了,不是环境变量的问题。  
   
  我觉得应该是server文件的事情,在server文件中也有数据库的连接,而在servlet中也有,两者可能冲突,所以不通了。  
   
  不知是不是这样,我用一个testdb作实验成功了,  
  testdb文件如下:  
   
  <%@   page   contentType="text/html;charset=GBK"%>  
  <%@   page   import=   "java.sql.*   "%>  
  <%@   page   import=   "javax.naming.*   "%>  
  <%  
  try{  
  Context   initCtx   =   new   InitialContext();  
  Context   ctx   =   (Context)   initCtx.lookup("java:comp/env");  
  //获取连接池对象  
  Object   obj   =   (Object)   ctx.lookup("jdbc/OracleDB_test");          
  //类型转换  
  javax.sql.DataSource   ds   =   (javax.sql.DataSource)obj;  
  Connection   conn   =   ds.getConnection();  
  Statement   stmt   =   conn.createStatement();  
  //String   strSql   =   "insert   into   test(id,name)   values('00001','holen')";  
  //stmt.executeUpdate(strSql);  
  String   strSql   =   "select   id,name   from   test";  
  ResultSet   rs   =   stmt.executeQuery(strSql);  
  if(rs.next()){  
  out.println(rs.getString(1));  
  out.println(rs.getString(2));  
  }  
  }catch(Exception   ex){  
  ex.printStackTrace();  
  throw   new   SQLException("cannot   get   Connection   pool.");  
  }  
  %>  
  <hr>  
  Top

13 楼zwd2878(安东)回复于 2003-12-06 03:11:31 得分 0

真的是这样吗??Top

14 楼lekuaile(开开心心)回复于 2003-12-06 09:13:33 得分 10

connect   =   DriverManager.getConnection("url",   "user",   "password");这句中的参数不应该加双引号呀,他们不是变量吗?应该是  
  connect   =   DriverManager.getConnection(url,   user,   password);Top

相关问题

  • VB$数据库
  • 数据库???
  • informix 数据库
  • vb数据库!
  • 数据库and ComboBox?
  • 数据库ado
  • MDB数据库
  • 数据库
  • SQL 数据库
  • sql数据库

关键词

  • 数据库
  • 文件
  • db
  • jdbc
  • oracle
  • server
  • driver
  • sqlexception
  • bulletins
  • 变量

得分解答快速导航

  • 帖主:zwd2878
  • lijong29909
  • hymarx
  • lekuaile

相关链接

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

广告也精彩

反馈

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