【发布时间】:2013-11-10 15:35:06
【问题描述】:
以前我使用此代码连接我的数据库没有发生错误。
但是来到这个 DA 文件,它无法连接到数据库。
我已经阅读了大部分帖子,但其中一些我不明白。[我只是 java 新手]
我曾尝试使用 jdbc:derby://localhost:1527/societydb;create=true
但同样的错误再次发生。
这是代码,
private String host = "jdbc:derby://localhost:1527/societydb";
private String user = "nbuser";
private String password = "nbuser";
private String tableName = "MEMBER";
private void createConnection() {
try {
conn = DriverManager.getConnection(host, user, password);
System.out.println("*** Successfully established the connection to database. ***");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage(), "Error Message", JOptionPane.ERROR_MESSAGE);
}
}
public ArrayList<Member> getMember() {
ArrayList<Member> memArray = new ArrayList<>();
try {
stmt = conn.prepareStatement("SELECT * FROM " + tableName);//<<< error pointing to here
ResultSet rs = stmt.executeQuery();
while (rs.next()){
Member m = new Member(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getInt(9), rs.getString(10), rs.getString(11));
memArray.add(m);}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage(), "Error Message", JOptionPane.ERROR_MESSAGE);
}
return memArray;
}
【问题讨论】:
-
找不到驱动类文件。您是否在类路径中添加了所需的驱动程序 jar 文件?我没有看到任何 class.forname 语句,所以您使用的是 Java 7 吗?
-
我不明白 class.forname 声明?能解释一下如何获取吗?
-
您需要使用 Class.forName() 调用显式加载您的驱动程序类。例如。对于 mysql,您执行 Class.forName("com.mysql.jdbc.Driver") 并在类路径中添加 mysql 连接器 jar 文件。为您的 derby 数据库寻找合适的驱动程序类。我指定 Java 7 的原因是,从 java 7 开始,这是自动完成的(您只需将 jar 文件添加到类路径)。