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 :

Problème de connexion MySql


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut Problème de connexion MySql
    Bonjour , je n'arrive pas me connecter a ma BDD , pourtant je n'ai aucune erreur quelque warnings comme :

    Classpath entry ***/mysql-connector-java-5.1.12/mysql-connector-java-5.1.12-bin.jar will not be exported or published. Runtime ClassNotFoundExceptions may result.

    Classpath entry eclipse.fproj.jdt.libprov.osgi/jpt.jpa is marked for publish/export but is not exported on the project classpath. Classpath visibility within Eclipse and at runtime will differ

    No connection specified for project. No database-specific validation will be performed.

    Projects must be referenced by an EAR or a WAR to use classpath publish/export dependencies whose runtime path (../) maps into the parent component.

    The serializable class NewJFrame does not declare a static final serialVersionUID field of type long

    Je pense que c'est lié au warnings mais je suis pas sur , je comprend rien.

    voici mon code au cas ou . Merci
    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
     
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Date;
    import com.mysql.jdbc.Connection;
     
    public class Mysql
    {
    	private Connection connexionBDD()
    	{
    		Connection conn = null;
    			try
    			{
    			Class.forName("projet");
    			conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/projet","root","*****");
    			}
    			catch (Exception e)
    			{
    				System.out.println("echec connection : "+e);
    			}
    		return conn ;
    	}
    	public void Erreur(String erreur)
    	{
    		Connection co = connexionBDD();
    		try
    		{
    			Date date= new Date();
     
    			erreur="test";
     
    			Statement state = co.createStatement();
    			ResultSet result=state.executeQuery("INSERT INTO erreur Values ('"+erreur+"','"+date+"')");
    			result.last();
    		}
    		catch (Exception e)
    		{
    			System.out.println("Erreur avec le insert : "+e+")");
    		}
    		try {
    			co.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
     
    }

  2. #2
    Membre habitué
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Tu n'aurais pas oublier de préciser le port dans ton url de connexion ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    je pense pas qu'il ya besoin de port vu que je suis en local host ,si c'est ca le probleme , je doit mettre le port ou ?

  4. #4
    Membre habitué
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Points : 178
    Points
    178
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:port/projet","root","*****");

    Cette ligne me paraît suspecte aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Class.forName("projet");
    Normalement c'est fait pour charger le driver là je doute que ça le fasse !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    En modifiant le ligne suscpecte , rien na changer ...

    et j'ai ajouté le port de mysql 3306 , et aucun changement

  6. #6
    Membre habitué
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Points : 178
    Points
    178
    Par défaut
    Quand tu exécutes tu n'as aucune exception ?

    Et comment as tu modifié la ligne de chargement du driver ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Non je n'ai aucune erreur , j'ai juste les warnings

    et pour le chargement du driver j'ai ajouter comme tu ma marquée j'ai mis : ("jdbc:mysql://localhost:3306/projet","root","*****")

  8. #8
    Membre habitué
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Points : 178
    Points
    178
    Par défaut
    Classpath entry ***/mysql-connector-java-5.1.12/mysql-connector-java-5.1.12-bin.jar will not be exported or published. Runtime ClassNotFoundExceptions may result.
    C'est vrai que ce warning peut faire comprendre que le fichier jar n'est pas chargé mais ce qui m'étonne c'est que à l'exécution si il ne pourrait pas charger le fichier ça serait plutôt une erreur qu'un warning.


    Après pour le chargement du driver faut mettre quelque chose dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Class.forName("org.gjt.mm.mysql.Driver");
    et pour la création de la connexion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:port/projet","root","*****");
    Excuse-moi si je me répète mais j'ai l'impression qu'on s'était mal compris ^^

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    ya pas de probleme pour que tu te repete lol , on s'etait mal compris ^^.


    dans le Class.forName, je comprend pas pourquoi je dois mettre "org.gjt.mm.mysql.Driver", le Class.ForName ne sert pas a instancier une classe??


    et por l'histoire du port , je dois ecrire "port" ou mettre le numero de portmysql 3306 ???

  10. #10
    Membre habitué
    Homme Profil pro
    Developpeur web/Java
    Inscrit en
    Février 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur web/Java
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2008
    Messages : 98
    Points : 178
    Points
    178
    Par défaut
    En faite le Class.forName ça permet de charger ton driver qui permet de dialoguer avec la base de données. Tu trouveras des explications plus précises ici ; http://java.developpez.com/faq/jdbc/...argementDriver

    Après il ne faut pas que tu écrives port mais bien 3306 je n'avais pas écris le numéro du port car ton mysql aurait pu tourner sur un autre numéro de port

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Nan ca marche toujours pas :s

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    si le probleme est à ce niveau la que retourne cette ligne stp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("echec connection : "+e);
    écrit dans la console

    classNotfoundExeption si le driver ne ce charge pas
    SQlExeption si la connexion ne ce fait pas
    ou tout autre chose

    (les Warning c'est l'or de la compilation pas de l'exécution)

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Ok , je vien de me rendre compte, qu'en faite , je compiler le programme et que je ne l'executer pas. Je vien de voir sur eclipse qu'il faut faire "Run As" puis java aplication , mais le probleme c'est que j'ai pas Java aplicatrion , j'ai "None applicable" j'ai vu qu'il faut rajouter une methode
    public static void main(String[] args)

    Mais le probleme c'est que j'ai crée le fichier en tant que classe , et donc une fois que je ferme l'accolade de la classe , il me dit qu'il y a une erreur ...

  14. #14
    Membre actif

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Points : 295
    Points
    295
    Par défaut
    ta methode main doit etre dans la classe (non en dehors).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Mysql
    {
    	public static void main(String[] args) {
    		Mysql mysql = new Mysql();
    		mysql.Erreur("TEST");
    	}
    	....
    }

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Ok merci , je sais meme pas pourquoi je ny ai pas penser ...

    maintenant j'ai cette erreur :

    Erreur avec le insert : java.sql.SQLException: Can not issue data manipulation statements with executeQuery().)

    je remet le code :

    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
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Date;
    import com.mysql.jdbc.Connection;
     
    public class Mysql
    {
    	private Connection connexionBDD()
    	{
    		Connection conn = null;
    			try
    			{
     
    			Class.forName("org.gjt.mm.mysql.Driver");
    			conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/projet","root","*****");
    			}
    			catch (Exception e)
    			{
    				System.out.println("echec connection : "+e);
    			}
    		return conn ;
    	}
    	public void Erreur(String erreur)
    	{
    		Connection co = connexionBDD();
    		try
    		{
    			Date date= new Date();
     
    			Statement state = co.createStatement();
    			ResultSet result=state.executeQuery("INSERT INTO erreur Values ('"+erreur+"','"+date+"')");
    			result.last();
    		}
    		catch (Exception e)
    		{
    			System.out.println("Erreur avec le insert : "+e+")");
    		}
    		try {
    			co.close();
    		} catch (SQLException e) {
     
    			e.printStackTrace();
    		}
    	}
    	public static void main(String[] args) {
    		Mysql mysql = new Mysql();
    		mysql.Erreur("TEST");
    	}
     
     
    }

  16. #16
    Membre actif

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Points : 295
    Points
    295
    Par défaut
    Pour insérer dans une base, tu ne peux pas utiliser la méthode executeQuery mais executeUpdate(), regarde des exemple de preparedStatement, j'ai pas vérifie mais je suis sur que ca existe dans la FAQ (au niveau JDBC)

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Oui sa existe bien dans la F.A.Q , merci de ton aide sa marche maintenant, enfin maintenant il me dit :

    Erreur avec le insert : com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'Date_et_Heures' at row 1)

    c'est ma fonction date qui est trop grande pour la place allouer (pourtant 20 varchar)

  18. #18
    Membre actif

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Points : 295
    Points
    295
    Par défaut
    Pour ta date, tu as 2 possibilités :
    - Mettre un champ date dans ta base de données (meilleure solution)
    - Utiliser un formatage pour ta date avant de l'insérer en base avec SimpleDateFormat (l'explication est aussi dans la FAQ)

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup de ton aide, Sa fonctionne nikel , j'ai crée un champs date avec la fonction CURRENT_TIMESTAMP.

    MErci beaucoup de ton aide a toi et a tout ce qui mon aider =).


    MErci =) et a bientot =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POSTFIX][MYSQL] problème de connexion à mysql
    Par tsutone dans le forum Réseau
    Réponses: 1
    Dernier message: 04/04/2007, 16h50
  2. [PEAR][DB] PHPonTrax : problème de connexion à mysql
    Par Ttienne dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/10/2006, 12h40
  3. Problèmes de connexion à MySQL ?
    Par DiabloZizi dans le forum Débuter
    Réponses: 3
    Dernier message: 03/09/2006, 20h21
  4. [OLEANE] Problème de connexion MySQL
    Par Tocraz dans le forum Autres hébergeurs
    Réponses: 3
    Dernier message: 14/06/2006, 09h47
  5. [dreamweaver] problème de connexion Mysql avec dreamweaver
    Par goma771 dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 30/01/2006, 14h14

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