jdbc - 错误 : No suitable driver found for jdbc:derby:CoffeeDB;create=true

标签 jdbc

我花了很多时间阅读以前的帖子,但似乎没有一个对我有帮助。我正在尝试从 NetBeans 运行一个简单的 Java 应用程序,这里是最简单的代码:

final String DB_URL = "jdbc:derby:CoffeeDB;create=true";         
try
  {
     // Create a connection to the database.
     Connection conn = DriverManager.getConnection(DB_URL);

     // If the DB already exists, drop the tables.
     dropTables(conn);

     // Build the Coffee table.
     buildCoffeeTable(conn);

     // Close the connection.
     conn.close();
  }
  catch (Exception ex)
  {
     System.out.println("ERROR: " + ex.getMessage());
  }

通常是环境变量引起的问题,但我已经检查过,它们似乎设置正确:

类路径: C:\Program Files\Java\jdk1.7.0_17\db\lib\derby.jar;C:\Program Files\Java\jdk1.7.0_17\db\lib\derbytools.jar;

Derby 之家 C:\Program Files\Java\jdk1.7.0_17\db

PATH: (仅关于jdbc的部分) C:\Program Files\Java\jdk1.7.0_17\db\bin

我已经在命令提示符下使用 ij 创建了一个表并且它有效,当我尝试通过 Netbeans 运行它时出现此错误。有趣的是,当我从命令提示符运行 sysinfo 时,它会像这样出现:

---------------- Java 信息​​--------------------

Java 版本:1.7.0_17

Java 供应商:甲骨文公司

Java 主目录:C:\Program Files\Java\jre7

Java类路径:C:\Program Files\Java\jdk1.7.0_17\db\lib\derby.jar;C:\Program Files\Java\jdk1.7.0_17\db\lib\derbytools.jar;C:\Program Files\Java\jdk1.7.0_17\db/lib/derby.jar;C:\Program Files\Java\jdk1.7.0_17\db/lib/derbynet.jar;C:\Program Files\Java\jdk1. 7.0_17\db/lib/derbyclient.jar;C:\Program Files\Java\jdk1.7.0_17\db/lib/derbytools.jar

操作系统名称:Windows Vista

操作系统架构:amd64

操作系统版本:6.0

---> 如您所见,不知何故更多信息被添加到先前的类路径中,并且 derbytools.jar 和 derby.jar 出现了两次?结合反斜杠??

通过 NetBeans 调试时,异常来自 DriverManager.java 文件中的这一行:

    Connection con = aDriver.driver.connect(url, info);     <--------------- here
    if (con != null) {
          // Success!
          println("getConnection returning " + aDriver.driver.getClass().getName());
          return (con);
    }

url 是正确的:jdbc:derby:CoffeeDB;create=true 但连接返回 null 并抛出 SQLexception。有什么想法吗?

最佳答案

异常消息“没有找到适合...的驱动程序” 意味着没有加载的 JDBC 驱动程序接受该 URL。这使得 JDBC 驱动程序很可能根本没有包含在应用程序的类路径中

当 Java 应用程序从 IDE 运行时,环境变量 CLASSPATH 几乎总是被忽略,如果从可执行 jar 运行,则总是被忽略。确保 IDE 中的构建路径实际包含 derby.jar,或者如果它是可执行 jar,则它列在 Class 的 META-INF/manifest.mf 中-Path 属性。

关于jdbc - 错误 : No suitable driver found for jdbc:derby:CoffeeDB;create=true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15713441/

相关文章:

Spring JdbcTemplate batchUpdate处理异常

hadoop - HIVE HA 通过 zookeeper (JDBC)

java - 如何从 Java 解锁 Oracle 用户的帐户?

ssl - 将 SSLContext 设置为 jdbc 连接

准备好的语句的 Java ExecuteUpdate 方法挂起

hadoop - org.apache.hive.jdbc.HiveDriver : HiveBaseResultSet has not implemented absolute()?

java - 尝试使用 Jackcess 和 JDBC 时抛出异常

java - Java 中的 addBatch() 执行

mysql - 如何在准备好的语句中将此值添加为查询?

java - Java JDBC卡在DELETE语句上