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

Servlets/JSP Java Discussion :

connexion a une base de données


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut connexion a une base de données
    bonjour,
    je doit developper une servlet qui se connecte a une base de données, mais je ne sais pas d'ou commencer. je suis sur linux fedora7, j'utilise eclipse comme editeur, tomcat comme moteur de servlet et mysql.
    Comment installé le connecteur JDBC?
    Quelle istruction je doit utiliser pour me connecter a la base?
    Merci d'avance?

  2. #2
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut ok my tuto
    Citation Envoyé par bassam0205 Voir le message
    bonjour,
    je doit developper une servlet qui se connecte a une base de données, mais je ne sais pas d'ou commencer. je suis sur linux fedora7, j'utilise eclipse comme editeur, tomcat comme moteur de servlet et mysql.
    Comment installé le connecteur JDBC?
    Quelle istruction je doit utiliser pour me connecter a la base?
    Merci d'avance?
    Pour repondre à ta question on prend mysql comme base de données.

    pour telecharger le driver(ou connecteur) jdbc de mysql , vous allez au lien suivant:


    http://dev.mysql.com/downloads/connector/j/3.0.html


    pour (installer) le connecteur il faut le declarer dans le projet java eclipse.
    pour faire suivez les étapes suivants:

    1) aller au project dans le menu eclipse
    2) selectionner properties
    3) selectionner java build path
    4) selectionner l'onglet Libreries
    5) cliquer sur add external jars
    6) selectionner le zip telechargé (driver)

    maintenant tous les bibliotheques du driver est déclaré dans le projet.

    essayer de créer une table appelé 'coffees' avec le champs suivants:
    ( cof_name , sup_id , price , sales , total ) respecter les types.

    enfin, voila la classe du test qui permet de réaliser la connexion, et afficher une table :

    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
     
         import java.sql.*;
     
         class testsql{
     
         public static void main(String[] args){
     
         //Nom de mon pilote
         String pilote = "com.mysql.jdbc.Driver";
     
         try{
         //Chargement de mon pilote
         Class.forName(pilote);
         //Connexion à ma base mysql avec mon login et mot de passe ( à vous de changer cela)
         Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/kop","root","zorro");
         //Création de mon statement qui va me permettre d'executer mes requetes
         Statement instruction = connexion.createStatement();
         //Ma table s'appelle coffees et tout ce qui reste dépend d'elle
         //Vous devez changer certaines infos comme le nom de la table et celui des colonnes
         ResultSet resultat = instruction.executeQuery("SELECT * FROM coffees");
         while(resultat.next()){
     
         System.out.println("---------------------------");
         System.out.println("Nom du cafe: "+resultat.getString("cof_name"));
         System.out.println("Numero du fournisseur: "+resultat.getInt("sup_id"));
         System.out.println("Prix: "+resultat.getFloat("price"));
         System.out.println("Ventes: "+resultat.getInt("sales"));
         System.out.println("Total: "+resultat.getInt("total"));
     
         }
         }
         catch (Exception e){
     
         System.out.println("echec pilote : "+e);
         }
     
         }
         }

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    salut,
    tout dabors merci pour ta reponse, j'ai fait comme tu m'a indiqué pour installer le pilote et aprés j'ai testé avec la servlet suivante
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    package parefeu.test;
     
     
    import java.io.*;
     
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    import java.sql.*;
     
    public
     class Sqltest extends HttpServlet {
     
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
     
    	public void doGet (HttpServletRequest req, HttpServletResponse res)
    	    throws ServletException, IOException {
    	    res.setContentType("text/html");
     
    	    ServletOutputStream out = res.getOutputStream();
    	    out.println("<html>");
    	    out.println("<head><title>Hello World</title></head>");
    	    out.println("<body>");
     
    	    try {
    		// The newInstance() call is a work around for some
    		// broken Java implementations
    	        out.println("asdf");
    		Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    	    }
    	    catch (Exception E) {
    		out.println("Unable to load driver.");
    		E.printStackTrace();
    	    }
     
    	    out.println("<br><hr>");
     
    	    try{
    		Connection Conn =  DriverManager.getConnection("jdbc:mysql://localhost:3306/parefeu","bassam","fedora");
     
    		// Do something with the Connection
    		Statement Stmt = Conn.createStatement();
    		ResultSet RS = Stmt.executeQuery("select * from regle");
     
    		while (RS.next()) {
    		   out.println(RS.getString(1));
    		}
    		// Clean up after ourselves
    		RS.close();
    		Stmt.close();
    		Conn.close();
     
    	    }
    	    catch (SQLException E) {
    		out.println("SQLException: " + E.getMessage());
    		out.println("SQLState:     " + E.getSQLState());
    		out.println("VendorError:  " + E.getErrorCode());
    	    }
     
    	    out.println("<h1>Hello World. Sun... 1.4</h1>");
    	    out.println("</body></html>");
    	}
     
    	public String getServletInfo() {
    	  return "Create a page that says <i>Hello World</i> and send it back";
    	}
     }
    sachant que j'ai deja creer l'utilisateur bassam dont le mot da passe est fedora, la base de données parefeu et la table regle.
    mais dans le navigateur j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLException: Error during query: Unexpected Exception: java.io.CharConversionException message given: null Nested Stack Trace: ** BEGIN NESTED EXCEPTION ** java.io.CharConversionException STACKTRACE: java.io.CharConversionException at gnu.gcj.convert.Input_iconv.read(libgcj.so.8rh) at java.lang.String.init(libgcj.so.8rh) at java.lang.String.(libgcj.so.8rh) at com.mysql.jdbc.SingleByteCharsetConverter.(SingleByteCharsetConverter.java:153) at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:108) at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:86) at com.mysql.jdbc.Connection.getCharsetConverter(Connection.java:3505) at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java:615) at com.mysql.jdbc.Buffer.writeStringNoNull(Buffer.java:655) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1686) at com.mysql.jdbc.Connection.execSQL(Connection.java:3277) at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2525) at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4139) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2789) at com.mysql.jdbc.Connection.(Connection.java:1555) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) at java.sql.DriverManager.getConnection(libgcj.so.8rh) at java.sql.DriverManager.getConnection(libgcj.so.8rh) at parefeu.test.Sqltest.doGet(Sqltest.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(libgcj.so.8rh) ** END NESTED EXCEPTION ** SQLState: S1000 VendorError: 0

    encore merci pour ton aide.

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    oui essayer de tester l'exemple en mode console (sans tomcat)

    et apres, tu passe à la servlet

    ( raison : pour tester s'il s'agit d'un probleme driver ou tomcat )

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    comment je peut tester ca en mode console?

  6. #6
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par bassam0205 Voir le message
    comment je peut tester ca en mode console?
    la classe que j'ai cité, contient le main donc tu peu executer directement cette classe et constater les resultats dans le console eclipse (fenetre en bas)

Discussions similaires

  1. [JDBC] Connexion a une base de données Access
    Par sg-40 dans le forum JDBC
    Réponses: 4
    Dernier message: 05/11/2005, 16h25
  2. Connexion sur une base de données Postgre
    Par ktox dans le forum C++Builder
    Réponses: 3
    Dernier message: 04/08/2005, 11h58
  3. [DataBase]Connexion a une base de données.
    Par GETah dans le forum JDBC
    Réponses: 3
    Dernier message: 19/04/2005, 18h47
  4. connexion a une base de donné mysql
    Par ithery75 dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/02/2005, 21h57
  5. connexion a une base de donnée distante mysql(site internet)
    Par rollernox dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2004, 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