简体   繁体   English

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

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

I'd like to use derby to manipulate my database in netbeans but I get this error: 我想使用derby在netbeans中操作我的数据库,但是我收到了这个错误:

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

To add the derby library, I have done: 要添加derby库,我已经完成了:

  1. Right click on "Libraries" then 右键单击“库”然后

  2. On the list, i selected Java DB Driver 在列表中,我选择了Java DB Driver

Here is the code of my class ConnexionDB.java 这是我的类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);
        }
    }
}

Even if I change: 即使我改变了:

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

to: 至:

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

I always get an error! 我总是收到错误!

There's a typo in the class name you're loading. 你正在加载的类名中有一个拼写错误。

Notice the e in apache : 注意在Apache中的E:

"org.apache.derby.jdbc.ClientDriver"

Class.forName is no longer required. 不再需要Class.forName。 Just adding the jar will add the JDBC driver. 只需添加jar就可以添加JDBC驱动程序。 Just comment out this section of Code. 只需注释掉这部分代码。 Class.forName(JDBC_DRIVER) no longer needed? 不再需要Class.forName(JDBC_DRIVER)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 日志中的Heroku错误:java.lang.ClassNotFoundException:org.apache.derby.jdbc.ClientDriver - Heroku error in logs: java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver 创建数据库时出错:java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver - An error occurred while creating the database: java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver 线程“主”java.lang.ClassNotFoundException 中的异常:org.apache.derby.jdbc.ClientDriver - Exception in thread “main” java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver - java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver Apache Derby 10.15.* - java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver - Apache Derby 10.15.* - java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver java-找不到类[org.apache.derby.jdbc.ClientDriver] - java - Class [org.apache.derby.jdbc.ClientDriver] not found SQLite数据库..java.lang.ClassNotFoundException:org.sqlite.jdbc - Sqlite database ..java.lang.ClassNotFoundException:org.sqlite.jdbc java.lang.ClassNotFoundException:org.springframework.jdbc.datasource.DriverManagerDataSource - java.lang.ClassNotFoundException: org.springframework.jdbc.datasource.DriverManagerDataSource “找不到类 java.lang.ClassNotFoundException:org.sqlite.JDBC - "Class not found java.lang.ClassNotFoundException: org.sqlite.JDBC java.lang.ClassNotFoundException:org.mariadb.jdbc.Driver - java.lang.ClassNotFoundException: org.mariadb.jdbc.Driver
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM