java derby数据库使用报错java.lang.ClassNotFoundException: org.apache.derby.jdbc.Embedde

mozillafirefly 2011-01-02 02:06:52
程序如下,请教各位大牛,不知道什么问题,报错行用红字表示。


import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;


public class RefDB {
// 一些字符串常量定义
private final String appPath = System.getProperty("user.dir"); //程序当前目录exam program
private final String db = appPath + File.separator + "db-derby-10.7.1.1-bin"; //数据库放在程序当前目录下的refdb中
private final String driver = "org.apache.derby.jdbc.EmbeddedDriver"; //derby数据库驱动字符串
private final String protocol = "jdbc:derby:"; //derby数据库连接协议
private final String tableName = "TAB_REFS"; //默认数据库中存放文献记录的数据表名称
Connection conn = null;


public void saveToDB(Object[][] contData) throws ClassNotFoundException, SQLException{
//load derby DB
Class.forName(driver);
// 连接derby数据库
conn = DriverManager.getConnection(protocol + db + ";create=true");


// 创建数据表的SQL语句
String SqlCreateTable="CREATE TABLE " + tableName + " (REF_TYPE VARCHAR(64), AUTHOR VARCHAR(1024), TITLE VARCHAR(1024), JOURNAL VARCHAR(1024), YEARS INT, VOL INT, PAGES VARCHAR(32))";
// 删除数据表的SQL语句(为保证创建成功,先删除数据库中已有的同名的表)
String SqlDropTable="DROP TABLE " + tableName;
//execute创建数据表的SQL语句
Statement stmt=conn.createStatement();
stmt.executeUpdate(SqlCreateTable);

// 以批处理的方式将表格数据模型中的数据添加到TAB_REFS数据表中
PreparedStatement prest = conn.prepareStatement("INSERT INTO "+ tableName + "(REF_TYPE, AUTHOR, TITLE, JOURNAL, YEARS, VOL, PAGES) VALUES(?,?,?,?,?,?,?)");
prest.clearBatch();

for (int i = 0; i < contData.length; i++) {
Object[] row=contData[i];
prest.setString(1, (String) row[0]);
prest.setString(2, (String) row[1]);
prest.setString(3, (String) row[2]);
prest.setString(4, (String) row[3]);
prest.setInt(5, (Integer) row[4]);
prest.setInt(6, (Integer) row[5]);
prest.setString(7, (String) row[6]);
prest.addBatch();
}
prest.executeBatch();
prest.close();

//find data
String SqlFindData="select * from"+tableName;
ResultSet rs=stmt.executeQuery(SqlFindData);
while(rs.next()){
String ref_type=rs.getString(1);
String author=rs.getString(2);
System.out.println(ref_type+""+author);

}

}
}
...全文
1679 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mozillafirefly 2011-01-05
  • 打赏
  • 举报
回复
谢谢,问题已经解决了。
方法1:derby添加到classpath,并放到jre\lib\ext里
方法2:eclips 添加derby.jar库
xxy8100 2011-01-02
  • 打赏
  • 举报
回复
你把驱动jar放到jdk安装目录的jre\lib\ext肯定行
Jlins 2011-01-02
  • 打赏
  • 举报
回复
驱动放到classpath上去了?

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧