写了一个操作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)
怎么回事呢?焦急啊,忘不吝赐教
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)
怎么回事呢?焦急啊,忘不吝赐教
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();
}
}
DB2的驱动包也要加到项目中
呵呵,没用过DB2不知道驱动怎么写,自己查查看
这样写不是加入吗?