Partage
  • Partager sur Facebook
  • Partager sur Twitter

error: package org.apache.derby.jdbc do not exist

Sujet résolu
    7 décembre 2016 à 17:42:02

    Pour commencer bonjour à tous et à toutes. Je suis étudiant en L3 informatique et j'ai un probleme concernant un projet en java, ou nous devons programmer une application JAVA FX qui traite une base de donnée donnée.
    Comme l'explique cet intitulé, j'ai un problème JAVA pour utiliser jdbc (utilisation de base de donnée) , et donc voici mon code (de la classe qui utilise jdbc) :

    Code :

    package java_projet;
     
     
    public class GPAO_database {
        static{
            try{
                java.sql.DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver());
                java.sql.Statement statement = java.sql.DriverManager.getConnection("jdbc:derby:GPAO_database;create=true").createStatement();
                statement.execute("create table Article(\n"
                        + "reference varchar(30),\n"
                        + "designation varchar(30) not null,\n"
                        + "type_fabrication_achat varchar(30) not null,\n"
                        + "unite_achat_stock varchar(30) not null,\n"
                        + "delai_en_semaine integer not null,\n"
                        + "prix_standard float,\n"
                        + "lot_de_reapprovisionnement integer,\n"
                        + "stock_mini integer,\n"
                        + "stock_maxi integer,\n"
                        + "pourcentage_de_perte float,\n"
                        + "inventaire integer,\n"
                        + "PF_ou_MP_ou_Piece_ou_SE char(2),\n"
                        + "constraint Article_pk primary key(reference),\n"
                        + "constraint Article_unique unique(designation),\n"
                        + "constraint Article_check check(PF_ou_MP_ou_Piece_ou_SE = 'PF' or PF_ou_MP_ou_Piece_ou_SE = 'MP' or PF_ou_MP_ou_Piece_ou_SE = 'Pi' or PF_ou_MP_ou_Piece_ou_SE = 'SE'))");
                statement.execute("create table Lien_de_nomenclature(\n"
                        //-- lien_de_nomenclature_id long,
                        + "compose varchar(30),\n"
                        + "composant varchar(30),\n"
                        + "quantite_de_composition float not null,\n"
                        + "constraint Lien_de_nomenclature_pk primary key(compose,composant),\n"
                        + "constraint Lien_de_nomenclature_fk_1 foreign key(compose) references Article(reference) on delete cascade,\n"
                        + "constraint Lien_de_nomenclature_fk_2 foreign key(composant) references Article(reference) on delete cascade)");
                        //-- constraint Lien_de_nomenclature_check check(compose <> composant)
                statement.execute("create table Remplacement(\n"
                        + "remplace_compose varchar(30),\n"
                        + "remplace_composant varchar(30),\n"
                        + "remplacant_compose varchar(30),\n"
                        + "remplacant_composant varchar(30),\n"
                        + "date_de_remplacement date not null,\n"
                        //-- constraint Remplacement_pk primary key(remplace_compose,remplace_composant,remplacant_compose,remplacant_composant),
                        + "constraint Remplacement_fk_1 foreign key(remplace_compose,remplace_composant) references Lien_de_nomenclature(compose,composant) on delete cascade,\n"
                        + "constraint Remplacement_fk_2 foreign key(remplacant_compose,remplacant_composant) references Lien_de_nomenclature(compose,composant) on delete cascade)");
                        //-- constraint Remplacement_check check(remplace <> remplacant)
                statement.execute("create table Poste_de_charge(\n"
                        + "numero_section integer,\n"
                        + "numero_sous_section integer,\n"
                        + "est_machine smallint,\n"
                        + "designation varchar(30) not null,\n"
                        + "taux_horaire_ou_forfait integer not null,\n"
                        + "nombre_de_postes integer not null,\n"
                        + "capacite_nominale integer not null,\n"
                        + "type_taux_horaire_ou_forfait char(2) not null,\n"
                        + "constraint Poste_de_charge_pk primary key(numero_section,numero_sous_section,est_machine),\n"
                        + "constraint Poste_de_charge_check_1 check(est_machine = 0 or est_machine = 1),\n"
                        + "constraint Poste_de_charge_check_2 check(type_taux_horaire_ou_forfait = 'TH' or type_taux_horaire_ou_forfait = 'F'))"); 
                statement.execute("create table Operation(\n"
                        + "gamme_de_fabrication varchar(30),\n"
                        + "numero_operation integer,\n"
                        + "machine_numero_section integer,\n"
                        + "machine_numero_sous_section integer,\n"
                        + "machine_est_machine smallint,\n"
                        + "main_d_oeuvre_numero_section integer,\n"
                        + "main_d_oeuvre_numero_sous_section integer,\n"
                        + "main_d_oeuvre_est_machine smallint,\n"
                        + "temps_preparation integer,\n"
                        + "temps_execution integer,\n"
                        + "temps_transfert integer not null,\n"
                        + "libelle_operation varchar(30) not null,\n"
                        + "constraint Operation_pk primary key(gamme_de_fabrication,numero_operation),\n"
                        + "constraint Operation_fk1 foreign key(gamme_de_fabrication) references Article(reference) on delete cascade,\n"
                        + "constraint Operation_fk2 foreign key(machine_numero_section,machine_numero_sous_section,machine_est_machine) references Poste_de_charge(numero_section,numero_sous_section,est_machine),\n"
                        + "constraint Operation_fk3 foreign key(main_d_oeuvre_numero_section,main_d_oeuvre_numero_sous_section,main_d_oeuvre_est_machine) references Poste_de_charge(numero_section,numero_sous_section,est_machine),\n"
                        + "constraint Operation_check_1 check(machine_est_machine = 1),\n"
                        + "constraint Operation_check_2 check(main_d_oeuvre_est_machine = 0))");
                statement.execute("create table Mouvement_de_stock(\n"
                        + "reference varchar(30),\n"
                        + "numero_magasin integer,\n"
                        + "quantite integer,\n"
                        + "periode date,\n"
                        + "type char(6) not null,\n"
                        //-- constraint Mouvement_de_stock_pk primary key(reference,periode,type),
                        + "constraint Mouvement_de_stock_fk foreign key(reference) references Article(reference),\n"
                        + "constraint Mouvement_de_stock_check check(type = 'Entree' or type = 'Sortie'))");
                statement.execute("insert into Article values('ROUE50','roue de camion','achat par lot','unite',6,1.5,500,500,2000,null,1850,'Pi')");
                statement.execute("insert into Article values('ES000','essieu monte','fabr. par lot','unite',2,null,500,750,1500,null,null,'SE')");
                statement.execute("insert into Article values('CH005','chassis monte','fabr. par lot','unite',1,null,300,null,900,null,null,'SE')");
                statement.execute("insert into Article values('H000','conteneur bleu','fabr. par lot','unite',1,null,150,350,800,null,null,'SE')");
                statement.execute("insert into Article values('H001','conteneur bleu special','fabr. a la commande','unite',1,null,150,350,null,null,null,'SE')");
                statement.execute("insert into Article values('CD100','camion demenagement bleu','pf fabr. par lot','unite',2,null,200,null,600,null,null,'PF')");
                statement.execute("insert into Lien_de_nomenclature values('ES000','ROUE50',2)");
                statement.execute("insert into Lien_de_nomenclature values('CH005','ES000',2)");
                statement.execute("insert into Lien_de_nomenclature values('CD100','CH005',1)");
                statement.execute("insert into Lien_de_nomenclature values('CD100','H000',1)");
                statement.execute("insert into Lien_de_nomenclature values('CD100','H001',1)");
                statement.execute("insert into Remplacement values('CD100','H000','CD100','H001',DATE('2007-09-13'))");
                statement.execute("insert into Poste_de_charge values(500,450,1,'Rectifieuse',80,1,39,'TH')");
                statement.execute("insert into Poste_de_charge values(500,450,0,'Rectifieur',80,1,39,'TH')");
                statement.execute("insert into Operation values('ES000',020,500,450,1,500,450,0,0.5,0.05,0.2,'Rectification')");            
            }catch (java.sql.SQLException sqle1){
                System.err.println("'GPAO_database' probably already exists? " + sqle1.getMessage());
                java.sql.Connection connection;
                java.sql.Statement clean_up;
                try {
                    connection = java.sql.DriverManager.getConnection("jdbc:derby:GPAO_database");
                    clean_up = connection.createStatement();
                    clean_up.execute("delete from GoCO");
                    clean_up.execute("delete from GonyPO");
                    clean_up.execute("delete from GoaVA");
                    clean_up.execute("delete from GonyVA");
                    connection.commit();
                } catch (java.sql.SQLException sqle2) {
                    System.err.println("'GPAO_database' persistent error: " + sqle2.getMessage());
                    System.exit(-1);
     
                }
            }
        }
     
        private java.sql.Connection _connection;
        //private java.sql.ResultSet _available_cards;
     
        public GPAO_database() throws java.sql.SQLException {
            _connection = java.sql.DriverManager.getConnection("jdbc:derby:GPAO_database");
            _connection.setAutoCommit(false);
            /*_available_cards = _connection.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY).executeQuery("SELECT DISTINCT PLASTIC_CARD.SERIAL_NUMBER, LOGICAL_CARD.CARD_NUMBER, CLIENT.BANK_CODE, CLIENT.NAME, CLIENT.CLIENT_PIN, LOGICAL_CARD.PASSWORD, LOGICAL_CARD.WITHDRAWAL_WEEKLY_LIMIT\n"
                    + "FROM PLASTIC_CARD, CLIENT, LOGICAL_CARD\n"
                    + "WHERE PLASTIC_CARD.CARD_NUMBER = LOGICAL_CARD.CARD_NUMBER\n"
                    + "AND LOGICAL_CARD.CLIENT_PIN = CLIENT.CLIENT_PIN");
            */
        }
     
        public java.sql.Connection activate_connection() throws Exception {
            if (_connection == null) {
                throw new Exception("Fatal error: JDBC not initialized");
            }
            return _connection;
        }
     
        public void disactivate_connection() throws Exception {
            if (_connection == null) {
                throw new Exception("Fatal error: JDBC not initialized");
            }
            _connection.commit();
            _connection.close();
        }

    Au niveau de la ligne "java.sql.DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver());" l'IDE (NetBeans 8.2 avec JDK 1.8) m'affiche une erreur "package org.apache.derby.jdbc does not exist"
    J'aimerais savoir comment résoudre le probleme, sachant que j'ai déjà tenté plusieur chose, comme telecharger "db-derby-10.13.1.1-bin" (là ou se trouve "org.apache.derby.jdbc") et je l'ai intégré au projet en tant que librairie, celat ne change absolument rien .
    Merci de votre lecture.

    -
    Edité par JérémiDuarte 7 décembre 2016 à 17:45:41

    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2016 à 9:23:46

      Bonjour,

      Il suffit de télécharger la version 10.13.1.1 (db-derby-10.13.1.1-bin.zip ou db-derby-10.13.1.1-bin.tar.gz).

      D'intégrer dans la bibliothèque, le contenu du dossier "lib" :

      Ca devrait fonctionner.

      PS : pour ajouter une bibliothèque : https://openclassrooms.com/courses/2570431/3602326?status=waiting-for-publication#/id/r-3602398

      Bonne continuation.

      -
      Edité par pctronique 8 décembre 2016 à 9:28:19

      • Partager sur Facebook
      • Partager sur Twitter

      error: package org.apache.derby.jdbc do not exist

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown