Bonjour tout le monde!
Je sais que le problème dont je vais parler a déjà été traité plusieurs fois... Mais impossible de me connecter à ma base de données MySQL.
Je cherche quelqu'un qui m'aidera dans mon code, ou alors trouver un Tutoriel Java-MySQL qui me permettra d'écrire un code fonctionnel que ej puisse comprendre!
J'ai écrit mon code à partir d'un programme éxistant (assez bugé tout de même...).
J'ai une classe principale (classe Main.java), une seconde qui me lit un fichier XML et qui dois insérer les données contenues dans le fichier xml dans MySQL (classe LireXML.java) et une troisième qui me fait la connexion à la base de données (la base étant déjà existante je dois utiliser les paramètres de la personne qui m'a précédé dans mes fonctions...)
Voici mon programme :
Classe Main :
import java.util.*;
import java.io.*;
import java.sql.*;
import java.awt.*;
import java.lang.*;
public class Main
{
public static void main(String[] args)
{
/*if(args.length<1)
{
System.out.println("Vous devez donner le chemin du fichier *.xml a injecter dans la base de données!");
}
else*/
{
try
{
//String url=args[0];
String url="test3.xml";
//System.out.println("Fichier a analyser : "+url);
LireXML fichierxml = new LireXML();
fichierxml.LireXML(url);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
//System.out.println("\nFin du programme.\n");
System.exit(0);
}
}
}
Classe LireXML :
import java.io.*;
import java.util.*;
import java.sql.*;
import java.lang.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
{
// Pour gérer l'indentation du document final.
private String indentString = " ";
private int indentLevel = 0;
//public String balise;
public String mbalise="";
public String mvaleur="";
public String result="";
// Démarrage de votre programme
public static void LireXML (String url) {
System.out.println("Entree dans LireXML");
/*if (url.length != 1) {
System.err.println ("Vous devez preciser un ficher a analyser!");
System.exit(-1);
}*/
SAXParserFactory factory = SAXParserFactory.newInstance();
try
{
SAXParser saxParser = factory.newSAXParser();
saxParser.parse( url, new LireXML() );
//saxParser.parse( new File(argv [0]), new Echoing() );
//saxParser.parse(new File(argv [0]), new Echoing() );
}
catch (Throwable t) {t.printStackTrace ();}
System.exit(0);
/////////////////////////////////////////////////////////////
// Connexion à la base de Données /////////////////////////
/////////////////////////////////////////////////////////////
try
{
DataBaseManager db = new DataBaseManager();
}
catch (Exception e) {
//System.err.println(requete);
//onError();
System.err.println("Erreur pendant la connexion à la base de donnees : " + e.getMessage());
}
}
/////////////////////////////////////////////////////////////
// Les gestionnaires d'évènements SAX ///////////////////////
/////////////////////////////////////////////////////////////
public void startDocument () throws SAXException
{
System.out.println("\n __START DOCUMENT__ \n");
}
public void endDocument () throws SAXException
{
System.out.println("\n __END DOCUMENT__ \n");
if (indentLevel > 0) System.out.println("AIEEEE probleme....");
}
public void startElement (String name, AttributeList attrs) throws SAXException
{
ResultSet result;
try
{
//System.out.println("Pré appel à DataBaseManager");
//DataBaseManager db = new DataBaseManager();
DataBaseManager db = new DataBaseManager("192.168.0.52","Serv","toto");
//System.out.println("Post appel à DataBaseManager");
//System.out.println("Etat de l'ouverture de la base de données : "+db);
tabs();
//System.out.print("<"+name);
//balise = name;
if (attrs != null) {
for (int i = 0; i < attrs.getLength (); i++) {
System.out.println();
tabs();
//System.out.print(" ");
//System.out.print(attrs.getName (i));
mbalise=attrs.getName (i); //Prend ici la valeur de la balise et la met dans la variable
// mbalise
//System.out.print(mbalise+" ");
//System.out.print(" = \"");
//System.out.print(attrs.getValue (i));
mvaleur=attrs.getValue (i); //Prend ici la valeur après la balise et la met dans la
// variable mvaleur
//System.out.print(mvaleur+" ");
//System.out.print("\"");
//Test sur le contenu de mvaleur
}
}
if (attrs.getLength() > 0) { System.out.println(""); tabs(); }
//System.out.println(">");
indentLevel++;
}
catch (Exception e) {
//System.err.println(requete);
//onError();
System.err.println("Erreur pendant le traitement et/ou la connexion a la base de donnees : " + e.getMessage());
}
}
// Fonctions de Fin d'élément
public void endElement (String name) throws SAXException
{
indentLevel--;
tabs();
//System.out.println("</"+name+">");
}
// Fonctions de Contenus de balise
public void characters (char buf [], int offset, int len) throws SAXException
{ String s = new String(buf, offset, len); }
// Fonctions utilitaires
private void tabs()
{
for(int i=0;i<indentLevel;i++)
{ System.out.print(indentString); }
}
// Connexion à la base de Données
//db.close();
}
Classe GestionBDD :
import java.util.*;
import java.io.*;
import java.sql.*;
public class DataBaseManager
{
private Connection connect;
private Statement state;
private String url = null;
private String login = null;
private String pwd = null;
public DataBaseManager(String url, String user, String password)
throws ClassNotFoundException, SQLException {
this.url = url;
this.login = user;
this.pwd = password;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connect = DriverManager.getConnection(url, login, pwd);
state = connect.createStatement();
}
public DataBaseManager()
throws ClassNotFoundException, SQLException {
this("jdbc:odbc:myDB", "Serv", "toto");
}
public void close() throws SQLException {
state.close();
connect.close();
}
}
Quand je l'execute, ça me dit "No suitable drive"
Alors je ne comprends rien... Rien au driver JDBC... Je ne sais pas comment l'installer... Ni rien du tou... Je me prends la tête depuis 4jours dessus....