1

以前我使用此代码连接我的数据库没有发生错误。

但来到这个 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;
}  
4

2 回答 2

0

从 Java文档中,您需要的驱动程序是org.apache.derby.jdbc.EmbeddedDriverorg.apache.derby.jdbc.ClientDriver.

它还明确指出

Any JDBC 4.0 drivers that are found in your class path are automatically loaded.(However,
 you must manually load any drivers prior to JDBC 4.0 with the method Class.forName.)

注意:JDBC 4.0 从 Java 7 开始作为默认包提供。

至于你的问题,在你的类路径(Ctrl + N in Intellij Idea or Ctrl + R in Eclipse)中搜索上面提到的类。如果这些类不存在,请用谷歌搜索它们,下载 jar 文件并将其添加到您的类路径中。

于 2013-11-10T19:47:18.760 回答
0

只需添加这些外部罐子:

  • derby.jar
  • derbyclient.jar

怎么做:

  1. 右键单击您的项目 > 属性 > Java 构建路径 > 库
  2. 单击“添加外部 jar”
  3. 转到 C:\Program Files\Java\jdk1.8.0_65\db\lib
  4. 添加derby.jarderbyclient.jar
于 2015-12-11T11:41:26.663 回答