簡體   English   中英

java.lang.ClassNotFoundException:org.apach.derby.jdbc.ClientDriver

[英]java.lang.ClassNotFoundException: org.apach.derby.jdbc.ClientDriver

我想使用derby在netbeans中操作我的數據庫,但是我收到了這個錯誤:

java.lang.ClassNotFoundException: org.apach.derby.jdbc.ClientDriver

要添加derby庫,我已經完成了:

  1. 右鍵單擊“庫”然后

  2. 在列表中,我選擇了Java DB Driver

這是我的類ConnexionDB.java的代碼

public class ConnexionDB {

    private Connection conx = null;
    private final String urlBDD = "jdbc:derby://localhost:1527/tennis;create=true;user=tennis;password=tennis";

    private String MessageError = "No Errors ! ";

    public ConnexionDB() {
        this.openConnexion();
        this.createDataBase();
    }

    private String getMessageError() {
        return MessageError;
    }

    private void setMessageError(String MessageError) {
        this.MessageError = MessageError;
    }

    private void openConnexion() {
        try {
            Class.forName("org.apach.derby.jdbc.ClientDriver");
            this.conx = DriverManager.getConnection(urlBDD);
        } catch (Exception ex) {
            this.setMessageError("BD_Connexion:ouvrirConnexion:Erreur::: " + ex.getMessage());
            ex.printStackTrace();
        }
    }

    public void closeConnexion() {
        try {
            this.conx.close();
        } catch (SQLException ex) {
            this.setMessageErreur("BD_Connexion:fermerConnexion:Erreur::: " + ex.getMessage());
        }
    }

    public Object[][] selectExe(String requete) {
        Object[][] data = new Object[1][1];

        try {
            if (requete.toLowerCase().contains("select")) {
                Statement ReqExe = this.conx.createStatement();
                ResultSet ReqRes = ReqExe.executeQuery(requete);

                int nbreColonne = ReqRes.getMetaData().getColumnCount();
                int nbreLigne = this.nombreLigne(requete);

                data = new Object[nbreLigne + 1][nbreColonne];

                for (int i = 1; i <= nbreColonne; i++) {
                    data[0][i - 1] = ReqRes.getMetaData().getCatalogName(i);
                }

                int cmptr = 1;
                while (ReqRes.next()) {
                    for (int i = 1; i <= nbreColonne; i++) {
                        data[cmptr][i - 1] = ReqRes.getString(i);
                    }
                    cmptr++;
                }
                ReqRes.close();
                ReqExe.close();
            }
        } catch (Exception ex) {
            this.setMessageErreur("BD_Connexion:selectExe:Erreur::: " + ex.getMessage());
        }

        return data;
    }

    private int nombreLigne(String requete) {
        int nbreLigne = 0;

        try {
            if (requete.toLowerCase().contains("select")) {

                Statement ReqExe = this.conx.createStatement();
                ResultSet ReqRes = ReqExe.executeQuery(requete);
                //
                while (ReqRes.next()) {
                    nbreLigne++;
                }
                ReqRes.close();
                ReqExe.close();
            }
        } catch (Exception ex) {
            this.setMessageErreur("BD_Connexion:nombreLigne:Erreur::: " + ex.getMessage());
        }
        return nbreLigne;
    }

    public boolean updateExe(String requete) {
        boolean data = false;

        try {
            if (!requete.toLowerCase().contains("select")) {

                Statement ReqExe = this.conx.createStatement();

                int reqInfo = ReqExe.executeUpdate(requete);

                if (reqInfo > 0) {
                    data = true;
                }
                ReqExe.close();
            }
        } catch (Exception ex) {
            this.setMessageErreur("BD_Connexion:updateExe:Erreur::: " + ex.getMessage());
        }
        return data;
    }

    private void createDataBase() {
        try {
            Statement ReqExe = this.conx.createStatement();

            String tableAdherent = "CREATE TABLE IF NOT EXISTS ADHERENT\n"
                    + "(NUMEROADHERENT INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY\n"
                    + "(START WITH 1, INCREMENT BY 1),\n"
                    + "NOM VARCHAR(24) NOT NULL,\n"
                    + "PRENOM VARCHAR(24) NOT NULL,\n"
                    + "ADDRESSE VARCHAR(50),\n"
                    + "TELEPHONE VARCHAR(24),\n"
                    + "EMAIL VARCHAR(30) NOT NULL UNIQUE,\n"
                    + "PASSWORD VARCHAR(35) NOT NULL);";
            ReqExe.execute(tableAdherent);

            String tableTouroi = "CREATE TABLE IF NOT EXISTS TOURNOI\n"
                    + "(CODETOURNOI INTEGER PRIMARY KEY AUTOINCREMENT,\n"
                    + "NOM VARCHAR(24) NOT NULL,\n"
                    + "DATE VARCHAR(30) NOT NULL,\n"
                    + "LIEU VARCHAR(30));";
            ReqExe.execute(tableTouroi);

            String tableInscription = "CREATE TABLE IF NOT EXISTS INSCRIPTION\n"
                    + "(IDINSCRIPTION INTEGER PRIMARY KEY AUTOINCREMENT,\n"
                    + "NUMEROADHERENT INTEGER NOT NULL,\n"
                    + "CODETOURNOI INTEGER NOT NULL,\n"
                    + "DATEINSCRIPTION VARCHAR(30) NOT NULL,\n"
                    + "CONSTRAINT fk_numeroAdherent Foreign KEY (NUMEROADHERENT) references ADHERENT(NUMEROADHERENT),\n"
                    + "CONSTRAINT fk_codeTournoi Foreign KEY (CODETOURNOI) references TOURNOI(CODETOURNOI));";
            ReqExe.execute(tableInscription);

            ReqExe.close();

        } catch (SQLException ex) {
            System.out.println("Echecs : Creation des tables");
            Logger.getLogger(ConnexionDB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

即使我改變了:

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

至:

Class.forName("org.apach.derby.jdbc.client");

我總是收到錯誤!

你正在加載的類名中有一個拼寫錯誤。

注意在Apache中的E:

"org.apache.derby.jdbc.ClientDriver"

不再需要Class.forName。 只需添加jar就可以添加JDBC驅動程序。 只需注釋掉這部分代碼。 不再需要Class.forName(JDBC_DRIVER)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM