begin process at 2008 08 20 14:12:52
1 228 858 membres
224 nouveaux aujourd'hui
14 257 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : AIDE sur Connexion BDD MySQL [ Archives / Au secours ] (zeldoi5)

AIDE sur Connexion BDD MySQL le 13/04/2005 09:39:22

zeldoi5
Membre Club

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....


Re : AIDE sur Connexion BDD MySQL le 13/04/2005 17:06:05

kirua12
Salut,

le driver pour Mysql est com.mysql.jdbc.Driver. On peut le télécharger depuis le site de MySql. Il faut ensuite l'ajouter au classpath.

Donc on a :
public DataBaseManager(String url, String user, String password)
  throws ClassNotFoundException, SQLException {
  this.url = url;
  this.login = user;
  this.pwd = password;
  Class.forName("com.mysql.jdbc.Driver");
  connect = DriverManager.getConnection(url, login, pwd);
  state = connect.createStatement();
 }


Re : AIDE sur Connexion BDD MySQL le 13/04/2005 17:28:03

zeldoi5
Membre Club

Salut, merci pour ta réponse.
J'avais trouvé quelques trucs sur le net, mais rien de probant...

Modifier le classpath via les variables d'environnement de windows?
Ou puis-je simplement mettre le *.jar de mysql dans un répertoire dans le répertoire de java?


Re : AIDE sur Connexion BDD MySQL le 13/04/2005 17:43:30

kirua12
Tu as 2 façons assez propres :
 - la variable CLASSPATH : tu ajoutes le chemin d'accès au jar
 - spécifier le classpath quand tu lances ton programme
         java -cp mysql.jar;. package.MaClasse


Re : AIDE sur Connexion BDD MySQL le 15/04/2005 09:53:20

zeldoi5
Membre Club
Me revoilà!
Désolé pour le retard.

Le problème c'est que je n'ai pas de variables CLASSPATH
(jusqu'à maintenant j'ai juste modifié la valeur du PATH pour lui donner le chemin du répertoire bin de java afin de compiler tranquille).

Quant à ta deuxième solution, je ne la comprend pas : je ne manipule pas (car je ne connais pas) les package.

Re : AIDE sur Connexion BDD MySQL le 15/04/2005 10:41:11

kirua12
Si tu n'as pas la variable CLASSPATH, il suffit de la créer.

Si tu n'as pas package : java -cp mysql.jar;. Main



Re : AIDE sur Connexion BDD MySQL le 15/04/2005 11:00:23

zeldoi5
Membre Club
Ok!
Merci beaucoup pour ton aide!


Classé sous : public, string, system, out, println

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS