Probleme connection base de donnée Derby EmbeddedDriver

Messages postés
4
Date d'inscription
vendredi 4 juin 2010
Dernière intervention
8 juin 2010
- - Dernière réponse :  Skander_Jenhani - 13 févr. 2019 à 16:31
Bonjour, j'ai suivi ce tuto afin de pouvoir créer mes bases de données embarquées. J'ai réussi à créer la base MYTABELLE comme dans le tuto. Mon problème vient après lorsque j'essaie de créer une classe afin de me connecter à cette base.

Voici mon code:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class ConnectionDB{

public static void main(String[] args) {

try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
System.out.println("DRIVER OK ! ");

String url = "jdbc:derby:/Users/ceb/MyDB";
String user = "";
String passwd = "";

Connection conn = DriverManager.getConnection(url, user, passwd);
System.out.println("Connection effective !");			

//Création d'un objet Statement
Statement state = conn.createStatement();
//L'objet ResultSet contient le résultat de la requête SQL
System.out.println("la");
ResultSet result = state.executeQuery("SELECT * FROM MYTABELLE");
//On récupère les MetaData
ResultSetMetaData resultMeta = result.getMetaData();

System.out.println("\n**********************************");
//On affiche le nom des colonnes
for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
System.out.print("\t" + resultMeta.getColumnName(i).toUpperCase() + "\t *");

System.out.println("\n**********************************");

while(result.next()){			
for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
System.out.print("\t" + result.getObject(i).toString() + "\t |");

System.out.println("\n---------------------------------");

}


                        result.close();
                        state.close();


} catch (Exception e) {
e.printStackTrace();
}		

}
}


Et l'erreur

DRIVER OK ! 
java.sql.SQLException: Echec du démarrage de la base de données '/Users/ceb/MyDB' ; pour plus de détails, voir l'exception suivante.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection30.(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection40.(Unknown Source)
at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at ConnectionDB.main(ConnectionDB.java:19)
Caused by: java.sql.SQLException: Echec du démarrage de la base de données '/Users/ceb/MyDB' ; pour plus de détails, voir l'exception suivante.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 13 more
Caused by: java.sql.SQLException: Il est possible qu'une autre instance de Derby ait déjà amorcé la base de données /Users/ceb/MyDB.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
... 10 more
Caused by: ERROR XSDB6: Il est possible qu'une autre instance de Derby ait déjà amorcé la base de données /Users/ceb/MyDB.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.getJBMSLockOnDB(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unknown Source)
... 10 more


j'ai testé avec:

ResultSet result = state.executeQuery("SELECT * FROM MYTABELLE");
ResultSet result = state.executeQuery("SELECT * FROM MYBASEINIT");
ResultSet result = state.executeQuery("SELECT * FROM MYBASEINIT.MYTABELLES");


J'ai besoin de votre aide. Merci d'avance.
Afficher la suite 

Votre réponse

4 réponses

Messages postés
4
Date d'inscription
vendredi 4 juin 2010
Dernière intervention
8 juin 2010
0
Merci
Petite erreur, mon message d'erreur est en faite celui-ci:

DRIVER OK ! 
Connection effective !
la
java.sql.SQLSyntaxErrorException: La table/vue 'MYTABELLE' n'existe pas.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source)
at ConnectionDB.main(ConnectionDB.java:26)
Caused by: java.sql.SQLException: La table/vue 'MYTABELLE' n'existe pas.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 9 more
Caused by: ERROR 42X05: La table/vue 'MYTABELLE' n'existe pas.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
... 3 more
Commenter la réponse de julienboulet
Messages postés
4
Date d'inscription
vendredi 4 juin 2010
Dernière intervention
8 juin 2010
0
Merci
C'est bon j'ai trouvé tout seul, voilà le code pour info:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class ConnectionDB{

public static void main(String[] args) {

try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
System.out.println("DRIVER OK ! ");

String url = "jdbc:derby:/Users/ceb/MyDB";
String user = "";
String passwd = "";

Connection conn = DriverManager.getConnection(url, user, passwd);
System.out.println("Connection effective !");			

//Création d'un objet Statement
Statement state = conn.createStatement();
//L'objet ResultSet contient le résultat de la requête SQL
System.out.println("la");
ResultSet result = state.executeQuery("SELECT * FROM MYBASEINIT.MYTABELLE");
//On récupère les MetaData
ResultSetMetaData resultMeta = result.getMetaData();

System.out.println("\n**********************************");
//On affiche le nom des colonnes
for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
System.out.print("\t" + resultMeta.getColumnName(i).toUpperCase() + "\t *");

System.out.println("\n**********************************");

while(result.next()){			
for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
System.out.print("\t" + result.getObject(i).toString() + "\t |");

System.out.println("\n---------------------------------");

}


                        result.close();
                        state.close();


} catch (Exception e) {
e.printStackTrace();
}		

}
}
Commenter la réponse de julienboulet
Messages postés
158
Date d'inscription
mardi 19 août 2008
Dernière intervention
8 août 2016
0
Merci
Salut

J'ai le méme probleme que toi peut tu m'aider stp voici mon code

package Programmation;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class connection{

public static void main(String[] args) {

try { 
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
System.out.println("DRIVER OK ! ");

String url = "jdbc:derby:/Mehdi/MyDB;create=true";
String user = "slide";
String passwd = "123";

Connection conn = DriverManager.getConnection(url, user, passwd);
System.out.println("Connection effective !");			

//Création d'un objet Statement
Statement state = conn.createStatement();
//L'objet ResultSet contient le résultat de la requête SQL
System.out.println("la");
ResultSet result = state.executeQuery("SELECT * FROM MYKILLERAPP.MyTabelle");
//On récupère les MetaData
ResultSetMetaData resultMeta = result.getMetaData();

System.out.println("\n**********************************");
//On affiche le nom des colonnes
for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
System.out.print("\t" + resultMeta.getColumnName(i).toUpperCase() + "\t *");

System.out.println("\n**********************************");

while(result.next()){			
for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
System.out.print("\t" + result.getObject(i).toString() + "\t |");

System.out.println("\n---------------------------------");

}


                        result.close();
                        state.close();


} catch (Exception e) {
e.printStackTrace();
}		

}
}


et voici l'erreur qui s'affiche apres execution :

DRIVER OK ! 
Connection effective !
la
ERROR 42Y07: Schema 'MYKILLERAPP' does not exist
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
at org.apache.derby.impl.sql.compile.ReadCursorNode.bind(Unknown Source)
at org.apache.derby.impl.sql.compile.CursorNode.bind(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source)
at Programmation.connection.main(connection.java:28)


alors que le shéma MYKILLERAPP existe bien dans ma base de données bref est ce que tu peut m'aider stp ?

Cordialement
Commenter la réponse de khaled001
0
Merci
Bonjour, j'avais la même erreur, là je l'ai résolut tout seul, il suffit de déconnecter la base sous data source explorer puisque derby c'est une base memory en mode multi tenant (on peut ouvrir qu'une seul connexion uniquement avec la base).
Commenter la réponse de Skander_Jenhani

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.