JAVA SQL - 没有为jdbc:derby找到合适的驱动程序

时间:2013-12-17 02:52:04

标签: java sql

我是JAVA和SQL的新手。

在一个练习中,我需要从NetBeans中的示例SQL表中读取数据。

在“services”中,我启动了JAVA DB服务器。都好。出现以下消息:

Mon Dec 16 21:40:36 EST 2013 : Security manager installed using the Basic server security policy.
Mon Dec 16 21:40:37 EST 2013 : Apache Derby Network Server - 10.8.3.0 - (1405108) started and ready to accept connections on port 1527

但是当我运行此程序(如下)时,会发生以下错误:

SQL Error: java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/sample 0 08001

以下是代码..如何确保找到合适的驱动程序?

import java.sql.*;

public class TableReporter {

    public static void main(String[] args) {
        String data = "jdbc:derby://localhost:1527/sample";
        try (
            Connection conn = DriverManager.getConnection(
            data, "app", "APP");
            Statement st = conn.createStatement()) {

            Class.forName("org.apache.derby.jdbc.ClientDriver");

            ResultSet rec =st.executeQuery(
                    "select * " +
                    "from SYS.SYSTABLES" +
                    "order by TABLENAME");
            while(rec.next()){
                System.out.println("TABLEID:\t" + rec.getString(1));
                System.out.println("TABLENAME:\t" + rec.getString(2));
                System.out.println("TABLETYPE:\t" + rec.getString(3));
                System.out.println("SCHEMAID:\t" + rec.getString(4));
                System.out.println();
            }
        st.close();
        } catch (SQLException s){
            System.out.println("SQL Error: " + s.toString() + " "
                    + s.getErrorCode() + " " + s.getSQLState());
        } catch (Exception e) {
            System.out.println("Error: " + e.toString()
                    +e.getMessage());
                }   
    }   
}

5 个答案:

答案 0 :(得分:2)

在尝试创建连接之前,是否需要加载驱动程序?

移动此声明

Class.forName("org.apache.derby.jdbc.ClientDriver");

成为try块中的第一个。

答案 1 :(得分:2)

问题在于jar文件。

Class.forName("org.apache.derby.jdbc.ClientDriver");

检查,

  1. 是否安装。
  2. 如果已安装,是否需要更新.bashrc文件。
  3. 或者,您是否已在netBeans IDE中导入.jar文件。
  4. 如果一切都不起作用,只需编写一个简单的JDBC程序,使用notpad& amp;运行它,检查你的机器有什么问题。

答案 2 :(得分:0)

  

在代码中尝试此更改

Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection conn = DriverManager.getConnection(
        data, "app", "APP");
        Statement st = conn.createStatement()) {

答案 3 :(得分:0)

你需要装载一罐德比司机。

的Class.forName( “org.apache.derby.jdbc.ClientDriver”);

答案 4 :(得分:0)

虽然提供了

,但我遇到了同样的问题
Class.forName("org.apache.derby.jdbc.ClientDriver");

但我发现我的属性文件,我正在加载db用户名和密码来自格式不正确。 它应该是这样的:

dburi=jdbc:derby://localhost:1527/dbname
user=username
pass=xxxx

并在代码中:

CachedRowSetImpl crs = new CachedRowSetImpl();
Properties pr = Properties();
crs.setUrl(pr.getProperty("dburi"));
crs.setUsername(pr.getProperty("user"));
crs.setPassword(pr.getProperty("pass"));