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 :
Citation:
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:
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:
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? :calim2:
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 :)