写了一个操作BLOB的程序,数据库驱动加载时出现了如下问题:
Exception in thread "main" java.lang.ClassNotFoundException: com.ibm.db2.jdbc.ap
p.DB2Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at BlobTest.main(BlobTest.java:82)
怎么回事呢?焦急啊,忘不吝赐教

解决方案 »

  1.   

    顺便源码如下:import java.sql.*;
    import java.io.*;
    /**
     *测试操作blob数据
     */
    public class BlobTest
    {
    Connection con=null;
    /**
     *往数据库中添加BLOB数据
     */
    public void addBlob()
    {
    try
    {            //创建一个PreparedStatement实例
        PreparedStatement pstmt=con.prepareStatement("insert into blobtest values(1,?)");
        File file = new File("c:\\test.jpg") ;
    FileInputStream fis = new FileInputStream(file);
                //把输入流设置为预处理语句的对象。
    pstmt.setBinaryStream(1, fis, (int)file.length());       
    //执行更新
    pstmt.executeUpdate();             
    pstmt.close();
    fis.close(); }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
     /**
      *创建一个表
      */
         public void createTable()
         {
          try
          {
          con.createStatement().execute("create table blobtest (id int ,pic blob,"+
            "constraint pk_blobtest primary key(id));");
         }
         catch(Exception e)
         {
          e.printStackTrace();
         }
        }
        /**
         *从数据库中读取BLOB数据
         */
    public void getBlob()
    {

         try
       {    
                //创建一个Statement实例
        Statement stmt=con.createStatement();
        ResultSet rst=stmt.executeQuery("select * from blobtest where id=1");
        rst.next();
        //获得blob数据和它的输入流,然后通过输入流把数据写到文件中。    
        Blob blob = rst.getBlob("pic") ;
                FileOutputStream out=new FileOutputStream(new File("c:/k.jpg"));
                InputStream in=blob.getBinaryStream();
                int i;
                while((i=in.read())!=-1)
                out.write(i);
                //关闭输入、输出流.
                in.close();
                out.close();        }
            catch(Exception e){
             e.printStackTrace();
            
             }
        }
        public static void main(String[] args)throws Exception
        {   
        
         Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
         BlobTest test=new BlobTest();
            test.con=java.sql.DriverManager.getConnection("jdbc:db2:dwctrldb","windlover","weier");
         test.createTable();
         test.addBlob();
         test.getBlob();
        }
    }
                

      

  2.   

    com.ibm.db2.jdbc.app.DB2Driver,这个类没找到,确认放在类路径下面了吗?或者放到web-inf下面的lib里面
      

  3.   

    Class.forName("");动态加入驱动有没有加啊
     DB2的驱动包也要加到项目中
    呵呵,没用过DB2不知道驱动怎么写,自己查查看
      

  4.   

    Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
    这样写不是加入吗?
      

  5.   

    看看DB2的连接吧,晚上查一下就ok