[QST]Tomcat 4.1 et bd mySQL

Tomcat 4.1 et bd mySQL [QST] - Java - Programmation

Marsh Posté le 11-02-2006 à 16:53:12    

Salut
 
je suis en train de faire un site en jsp avec un server tomcat 4.1
 
j'ai besoin de me connecter à une bd mysql et voila que les problèmes arrivent :)
 
Donc j'ai téléchargé les driver JDBC de mySQL j'ai placé le .jar dans common/lib de tomcat
J'ai ensuite fait mon connectionBean mais rien à faire ca marche pas
 
Je vous mets mon connectionBean ainsi qu'une page de test pour voir si mon code est correct (je n'obtient aucune erreur sur mon code je catch juste une erreur sql alors que ma requete marche)
 

Code :
  1. package sgbd2;
  2. import java.sql.*;
  3. public class ConnectionBean{
  4.   private static final String driver="org.gjt.mm.mysql.Driver";
  5.   private static final String dbURL="jdbc:mysql://localhost:3306/caddie";
  6.   private static final String login="root";
  7.   private static final String password="";
  8.   private Connection connection;
  9.   private Statement statement;
  10.   public ConnectionBean() {
  11.     try {
  12.       Class.forName(driver);
  13.       connection=DriverManager.getConnection(dbURL,login,password);
  14.       statement=connection.createStatement();
  15.     }
  16.     catch (ClassNotFoundException e) {
  17.       System.err.println("ConnectionBean : pilote non disponible" );
  18.       connection = null;
  19.     }
  20.     catch (SQLException e) {
  21.       System.err.println("ConnectionBean : pilote non chargé" );
  22.       connection = null;
  23.     }
  24.   }
  25.   public Connection getConnection() {
  26.     return connection;
  27.   }
  28.   public void commit() throws SQLException {
  29.     connection.commit();
  30.   }
  31.   public void rollback() throws SQLException {
  32.     connection.rollback();
  33.   }
  34.   public void setAutoCommit(boolean autoCommit)
  35.     throws SQLException {
  36.     connection.setAutoCommit(autoCommit );
  37.   }
  38.   public ResultSet executeQuery(String sql) throws SQLException {
  39.     return statement.executeQuery(sql);
  40.   }
  41.   public int executeUpdate(String sql) throws SQLException {
  42.     return statement.executeUpdate(sql);
  43.   }
  44.   protected void finalize() {
  45.     try {
  46.       connection.close();
  47.     }
  48.     catch (SQLException e) { }
  49.   }
  50. }


 
le fichier de test
 

Code :
  1. <html>
  2. <body>
  3. <%@ page import="sgbd2.ConnectionBean,java.lang.*,java.sql.*"%>
  4. <%
  5.        ResultSet rs;
  6.          ConnectionBean db = new ConnectionBean();
  7.          try {
  8.              String sql ="select id from test where id=5";
  9.              rs = db.executeQuery(sql);
  10.              out.println(rs.getString("id" ));
  11.              rs.close();
  12.          } catch (Exception e){throw new ServletException("Erreur SQL" );}
  13. %>
  14. </body>
  15. </html>


 
Merci d'avance pour vos réponses :)

Reply

Marsh Posté le 11-02-2006 à 16:53:12   

Reply

Marsh Posté le 11-02-2006 à 18:11:17    

c'est quoi le message de l'SQLException ? (je parle bien de celui de l'exception, pas de ton "ConnectionBean : pilote non chargé" [:itm] )
si ca se trouve c'est juste que t'as pas le droit de te connecter ... mais vu que te ne fais rien de l'exception ... [:petrus75]

Reply

Marsh Posté le 11-02-2006 à 19:44:11    

le message je le génère moi meme donc elle n'apporte pas vraiment d'information
 
le message est Erreur SQL
 
le problème doit venir de l'installation des pilotes JDBC
 
mon code ne pose aucun problème "normalement" :)
c'est plus au niveau de la configuration de tomcat pqc ma base de donnée est accessible en php

Reply

Marsh Posté le 11-02-2006 à 20:26:49    

[:kiki]
 
au lieu de faire  

Code :
  1. catch (SQLException e) {
  2.      System.err.println("ConnectionBean : pilote non chargé" );
  3.      connection = null;
  4.    }


 
fais plutot un truc du genre

Code :
  1. catch (SQLException e) {
  2.      e.printStackTrace();
  3.    }


 
comme ca tu connaitras la cause de l'exception, a mon avis tu en sauras plus a ce moment [:itm]

Reply

Marsh Posté le 11-02-2006 à 20:28:05    

de meme que ca
 

Code :
  1. catch (Exception e){throw new ServletException("Erreur SQL" );


 
c'est stupide, tu perds la cause de l'exception, e est perdue a jamais, comment comptes tu trouver la cause de l'exception si tu jettes toutes les info qui pourraient etre utiles ???

Reply

Marsh Posté le 12-02-2006 à 11:57:03    

J'ai fait ce que vous m'avez conseillé et j'ai bien un problème au niveau des drivers ils ne sont pas trouvés
 
je voudrais savoir comment les installer :)

Reply

Marsh Posté le 12-02-2006 à 12:03:24    

on installe pas, on les mets dans le classpath de l'appli web ou dans le repertoire qui contient les librairies partagees de tomcat

Reply

Marsh Posté le 12-02-2006 à 12:20:04    

faut pas modifier le server.xml ?
 
normalement juste en le mettant dans le common/lib ca devrait marcher c'est ca ?

Reply

Marsh Posté le 12-02-2006 à 16:16:32    

met un password à ton user mysql, me semble avoir déjà eu des soucis avec des mdp vides..


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 13-02-2006 à 19:03:19    

cybersplash a écrit :

faut pas modifier le server.xml ?


 
Non, jamais besoin pour les drivers.
 

cybersplash a écrit :

normalement juste en le mettant dans le common/lib ca devrait marcher c'est ca ?


 
Oui, en gros soit tu veux pouvoir tester un programme avec différents drivers (.jar) que tu mets dans le "WEB-INF/lib" de chaque application, soit tu utilise toujours le même driver et tu le mets dans le "common/lib" une fois pour toutes et alors bien sûr les applications n'ont plus besoin de l'avoir puisque le serveur le connaît déjà.

Reply

Marsh Posté le 13-02-2006 à 19:03:19   

Reply

Marsh Posté le 13-02-2006 à 19:07:06    

the real moins moins a écrit :

met un password à ton user mysql, me semble avoir déjà eu des soucis avec des mdp vides..


 
+1.
En principe MySQL s'utilise directement avec login=root et pas de password, mais j'ai souvent eu des problèmes bizarres avec des applications qui exigeaient des mots de passe pour fonctionner, plutôt liées à des couches de service "bas niveau" genre pools de connexion Apache donc je n'ai pas vraiment cherché.
Donc soit tu mets un mot de passe à root, soit tu crées un autre utilisateur avec son propre mot de passe.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed