当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·如何使一个文本框显示和隐藏    »显示摘要«
    摘要: 如何根据自己的需要在程序中使一个文本框显示和隐藏?我刚刚开始学,请解释的详细一些,非常感谢! ......
    摘要: 请问究竟什么是client area???<windows程序设计>p65和<vc技术内幕>p42为什么对客户区的定义是完全矛盾的啊!!!??? ------------------------------------------------------------------ a.<windows程序设计>p65,英文原文: the client ar......


用servlt访问oracle的lob(图象)问题

程序如下:  
   
  import   javax.servlet.*;  
  import   javax.servlet.http.*;  
  import   java.io.*;  
  import   java.util.*;  
  import   java.sql.*;  
  import   javax.sql.*;  
   
  /**  
    *   <p>Title:   </p>  
    *   <p>Description:   </p>  
    *   <p>Copyright:   Copyright   (c)   2003</p>  
    *   <p>Company:   </p>  
    *   @author   not   attributable  
    *   @version   1.0  
    */  
   
  public   class   LobServlet   extends   HttpServlet   {  
      private   String   dbUserName="yujq";  
      private   String   dbPassword="yujq";  
      protected   void   doGet(HttpServletRequest   request,HttpServletResponse   response)  
              throws   ServletException,IOException{  
          ServletOutputStream   out=response.getOutputStream();  
          String   dataType=request.getParameter("type");  
          int   memberID=Integer.parseInt(request.getParameter("id"));  
          if(dataType.equalsIgnoreCase("blob")){  
              response.setContentType("image/jpeg");  
              out.write(getBlob(memberID));  
          }//else   if(dataType.equalsIgnoreCase("clob")){  
              //response.setContentType("text/html");  
              //out.write(getClob(memberID));  
          //}  
          out.flush();  
          out.close();  
      }  
   
      public   byte[]   getBlob(int   memberID){  
          String   query="SELECT   Image   FROM   Photos   WHERE   MemberID=?";  
          Blob   blob=null;  
          byte[]   bytes=null;  
          try{  
                //   Load   the   Oracle   JDBC   driver  
                DriverManager.registerDriver(new   oracle.jdbc.OracleDriver());  
   
                //   Connect   to   the   database  
                //   You   must   put   a   database   name   after   the   @   sign   in   the   connection   URL.  
                //   You   can   use   either   the   fully   specified   SQL*net   syntax   or   a   short   cut  
                //   syntax   as   <host>:<port>:<sid>.     The   example   uses   the   short   cut   syntax.  
                String   url   =   "jdbc:oracle:thin:@yjq:1521:YJQDB";  
                String   userName   =   "yujq";  
                String   password   =   "yujq";  
                Connection   con   =DriverManager.getConnection   (url,   userName,   password);  
   
              //Class.forName("oracle.jdbc.driver.OracleDriver");  
              //oracle.jdbc.pool.OracleDataSource   tds=new   oracle.jdbc.pool.OracleDataSource();  
              //tds.setServerName("YJQDB");  
              //tds.setDatabaseName("TESTBLOB");  
              //tds.setUser(dbUserName);  
              //tds.setPassword(dbPassword);  
   
              //DataSource   ds=tds;  
              //Connection   con=ds.getConnection(dbUserName,dbPassword);  
              PreparedStatement   pstmt   =con.prepareStatement(query);  
              pstmt.setInt(1,memberID);  
   
              ResultSet   rs=pstmt.executeQuery();  
              ResultSetMetaData   md=rs.getMetaData();  
              while(rs.next()){  
                  blob=rs.getBlob(1);  
              }  
              bytes=blob.getBytes(1,(int)(blob.length()));  
              con.close();  
          }  
          //catch(ClassNotFoundException   e){  
          //     e.printStackTrace();  
          //}  
          catch(SQLException   e){  
              e.printStackTrace();  
          }  
          return   bytes;  
      }  
  }  
  我在浏览器中输入以下URL:  
  http://localhost:808/examples/servlet/LobServlet?type=blob&id=1;  
  会出现以下异常:  
  java.lang.NoClassDefFoundError:   oracle/jdbc/OracleDriver  
  at   LobServlet.getBlob(LobServlet.java:43)  
  at   LobServlet.doGet(LobServlet.java:28)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:740)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)  
  at   filters.ExampleFilter.doFilter(ExampleFilter.java:149)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)  
  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)  
  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)  
  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)  
  at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)  
  at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)  
  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)  
  at   java.lang.Thread.run(Thread.java:536)  
   
  难道oracle驱动器有问题?去了classpath加入oracle的classes12.jar之外,还有什么配置?谢谢

NO.1   作者: peacock_king

web-inf/lib/classes12.jar

NO.2   作者: yoken

oracle.jdbc.OracleDriver是一个interface,不能new   oracle.jdbc.OracleDriver()


 ·100分请高手,少了再加    »显示摘要«
    摘要: 查询按钮的click事件中的测试代码: connect using sqlca; string ls_oldsql string ls_newsql ls_oldsql=dw_1.getsqlselect() if pos(ls_oldsql,"where")<>0 then ls_newsql=ls_oldsql+" and no=2"......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE