IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Extraire des données d'Oracle vers Excel via JDBC


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Par défaut Extraire des données d'Oracle vers Excel via JDBC
    Salut,

    Je suis nouvel utilisateur de java(avec eclipse)
    et j'essai de faire un programme qui me permette d'extraire des données d'une table oracle vers un fichier excel.
    (si vous avez des exemples je suis preneur.

    Je viens de trouver un code qui permet de se connecter à une base oracle et de faire une requête mais j'ai un soucis et je ne comprends pas pourquoi ?

    Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at export_data.create_excel.main(create_excel.java:24)
    Hello
    le code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    package export_data;
     
    import java.sql.DriverManager;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
     
     
    public class create_excel {
     
    	private static final String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
    	private static final String DB_CONNECTION = "jdbc:oracle:thin:@localhost:1521:TEST";
    	private static final String DB_USER = "test";
    	private static final String DB_PASSWORD = "test";
     
     
    	public static void  main(String[] args) throws ClassNotFoundException {
    		// TODO Auto-generated method stub
    		System.out.println("Hello");
    // start 
    		try {
     
    			 Class.forName ("oracle.jdbc.driver.OracleDriver");
     
    			selectRecordsFromTable();
     
    		} catch (SQLException e) {
     
    			System.out.println(e.getMessage());
     
    		}
     
     
     
     
    	// end
    	}
     
    	private static void selectRecordsFromTable() throws SQLException {
     
    		Connection dbConnection = null;
    		PreparedStatement preparedStatement = null;
     
    		String selectSQL = "SELECT * FROM DUAL";
     
    		try {
    			dbConnection = getDBConnection();
    			preparedStatement = dbConnection.prepareStatement(selectSQL);
    			preparedStatement.setInt(1, 1001);
     
    			// execute select SQL stetement
    			ResultSet rs = preparedStatement.executeQuery();
     
    			while (rs.next()) {
     
    				String userid = rs.getString("USER_ID");
    				String username = rs.getString("USERNAME");
     
    				System.out.println("userid : " + userid);
    				System.out.println("username : " + username);
     
    			}
     
    		} catch (SQLException e) {
     
    			System.out.println(e.getMessage());
     
    		} finally {
     
    			if (preparedStatement != null) {
    				preparedStatement.close();
    			}
     
    			if (dbConnection != null) {
    				dbConnection.close();
    			}
     
    		}
     
    	}
     
     
     
    	private static Connection getDBConnection() {
     
    		Connection dbConnection = null;
     
    		try {
     
    			Class.forName(DB_DRIVER);
     
    		} catch (ClassNotFoundException e) {
     
    			System.out.println(e.getMessage());
     
    		}
     
    		try {
     
    			dbConnection = DriverManager.getConnection(
                                 DB_CONNECTION, DB_USER,DB_PASSWORD);
    			return dbConnection;
     
    		} catch (SQLException e) {
     
    			System.out.println(e.getMessage());
     
    		}
     
    		return dbConnection;
     
    	}
     
    //end create_excel
    }
    Merci à tous.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu as oublié d'ajouter le driver Oracle à ton programme. Il y a de la doc là dessus dans la FAQ jdbc du site.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Par défaut
    donc si je comprends bien il faut que je télécharge un driver jdbc pour oracle.
    Je suis allé sur la faq
    http://java.developpez.com/faq/jdbc/...argementDriver

    c'est dommage il n'indique pas de lien,
    donc je suis allé ici
    http://www.oracle.com/technetwork/da...10-090769.html

    j'ai téléchargé ojdbc6 mais impossible de l'installé.

    PS : je suis sous Windows 8 et j'ai java 1.7

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut

    pour Java 7, charge le driver ojdbc7 !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Melvine Voir le message
    j'ai téléchargé ojdbc6 mais impossible de l'installé.
    ojdbc6 devrait suffire. Pas besoin d'aller jusque ojdbc7, d'autant plus que plus on monte dans les chiffres, moins les vieilles bases de données oracles sont supportées et c'est retro compatible de toutes façons.

    Qu'est-ce que tu entends pas "installer"?? As-tu bien rajouté ce jar à ton projet?

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		String selectSQL = "SELECT * FROM DUAL";
     
    		try {
    			dbConnection = getDBConnection();
    			preparedStatement = dbConnection.prepareStatement(selectSQL);
    			preparedStatement.setInt(1, 1001);
    Ta requête n'a pas de paramètre or que tu l'affectes un Integer.

    A+.

  7. #7
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Bonjour
    Citation Envoyé par Melvine Voir le message
    j'ai téléchargé ojdbc6 mais impossible de l'installé.
    Un driver est un programme java comme un autre pour l'utiliser pas besoin de l'installer, mais juste l'ajouter au CLASSPATH

    Edit :

    Comme souligné par tchize_ la solution dont je parlais est la 2 qui utilise -cp ou -classpath.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Note que cette entrée de la FAQ est ambigue et dangereuse. Ne jamais, autant que possible, modifier la variable d'environnement CLASSPATH, qu'il ne faut pas confondre avec le classpath. CLASSPATH défini un ensemble de librairies / dossier utilisé par défaut par toutes les applications, le second est le nom qu'on donne à l'ensemble des classes et ressources visibles par une application java données. Le classpath peux dériver de CLASSPATH, mais pas nécessairement, et il est inutile d'aller modifier CLASSPATH pour résoudre un problème lié au classpath.

    D'ailleurs, si t'as un IDE (netbeans, eclipse, ...), il se cahrge de gérer le classpath de ton projet tout seul

  9. #9
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Merci tchize_ de le souligné effectivement quand je parlais de l'ajouter au CLASSPATH je pensais a la solution 2 décrite dans la FAQ qui utilise le -cp ou -classpath.

    J’édite le post pour le préciser
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [A-03] Extraire des données d'Access vers Excel
    Par azräel dans le forum VBA Access
    Réponses: 5
    Dernier message: 29/10/2008, 08h13
  2. extraction des données de MySQL vers excel
    Par wiama dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/05/2007, 11h37
  3. [GML] Scripts shell pour extraire des données d'Oracle
    Par diamonds dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 28/09/2006, 07h04
  4. Réponses: 1
    Dernier message: 07/07/2006, 18h13
  5. Export de données Oracle vers Excel via PHP
    Par Yanos dans le forum Oracle
    Réponses: 1
    Dernier message: 11/01/2006, 18h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo