Bonjour à tous et à toutes.

Voila j'ai un petit soucis. Je dois créer un programme qui est sensé ouvrir un fichier XML, lire ce qu'il y a dedans et le rajouter dans une DB Oracle. Pour les test j'ai repris les exemples de la FAQ Java/XML.

Voici l'erreur que j'ai :

run:
Début du parsing
Fin du parsing
Resultats du parsing
Nom : nom0, Prenom : prenom0, Adresse : adresse0
05-avr.-2011 16:04:40 javaxml.DBConnection AjoutDB
GRAVE: null
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at javaxml.DBConnection.AjoutDB(DBConnection.java:30)
at javaxml.PersonneHandler.endDocument(PersonneHandler.java:117)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.java:737)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:516)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:331)
at javaxml.Main.main(Main.java:35)
Nom : nom1, Prenom : prenom1, Adresse : adresse1
05-avr.-2011 16:04:40 javaxml.DBConnection AjoutDB
GRAVE: null
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at javaxml.DBConnection.AjoutDB(DBConnection.java:30)
at javaxml.PersonneHandler.endDocument(PersonneHandler.java:117)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.java:737)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:516)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:331)
at javaxml.Main.main(Main.java:35)
BUILD SUCCESSFUL (total time: 0 seconds)

Au niveau de ce que j'ai changé dans le code de l'exemple:



Dans le PersonneHandler:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
//fin du parsing
	public void endDocument() throws SAXException {
		System.out.println("Fin du parsing");
		System.out.println("Resultats du parsing");
 
                    for(Personne p : annuaire){
			System.out.println(p);
 
                        con = new DBConnection(p);
                        con.AjoutDB();
                    }
 
    }


et ajout de la classe DBConnection

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
package javaxml;
 
import java.sql.*;
import java.util.logging.*;
 
/**
 *
 * @author lta
 */
public class DBConnection {
 
    private Personne p;
    private Connection con;
 
 
    public DBConnection (Personne p)
    {
        this.p = p;
    }
 
 
    public void AjoutDB()
    {
        try {
                    Class.forName("oracle.jdbc.driver.OracleDriver");
                    Connection con=DriverManager.getConnection(
                    "jdbc:oracle:thin:@/* IP du serveur */:1521:DVLP",
                    /*nom*/,
                    /*MDP*/);
 
			System.out.println(p);
                        String SQLInstruction="insert into test (nom, prenom, adresse) values (?, ?, ?)";
 
                        PreparedStatement prepStat=con.prepareStatement(SQLInstruction);
 
                        prepStat.setString(1, p.getNom());
                        prepStat.setString(2, p.getPrenom());
                        prepStat.setString(3, p.getAdresse());
 
                        prepStat.executeUpdate();
 
 
                    con.close();
            }
            catch (SQLException ex) {
            Logger.getLogger(PersonneHandler.class.getName()).log(Level.SEVERE, null, ex);
        }        catch (ClassNotFoundException ex) {
            Logger.getLogger(PersonneHandler.class.getName()).log(Level.SEVERE, null, ex);
        }
 
    }
 
 
 
}


Je précise que j'utilise la DB pour un autre projet et que tout se passe très bien sans erreurs.



Pouvez vous m'aider s'il vous plait?


edit: Je sais bien que la façon de faire, ouvrir la db a chaque fois au lieu d'une seule fois n'est pas génial pour les performance, ici je fais juste ca pour le test