Probleme de connexion à la base de donnée

Signaler
Messages postés
12
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
21 avril 2008
-
Messages postés
12
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
21 avril 2008
-
Bonjour,
Je galère depuis deux trois jours sur la connexion à ma base de donnée (qui est installée en local sur mon ordi ) à travers ma servlet (tomcat 5.5 qui est aussi en local)
Je me suis dis: "puis que ca marche pas le tien trouve un code qui marche et testes le"
C'est ce que j'ai fait et j'ai trouvé ceci sur votre site :
http://www.javafr.com/codes/CONNECTION-SERVLET-AVEC-BASE-DONNEES-MYSQL-UTILISATION-EXPRESSIONS_37026.aspx

Bon j'ai juste modifié mon port et mon host par :
java.sql.Connection conn = java.sql.DriverManager.getConnection(

              "jdbc:mysql://127.0.0.1:3306/BIOTECH","root","root");

et aussi la requête originale :
 try

        {

               Class.forName(pilote);

            java.sql.Connection conn = java.sql.DriverManager.getConnection(

              "jdbc:mysql://localhost:3309/test","root","omar");

            stmt = conn.createStatement();

            String req="SELECT id FROM test";

            rs = stmt.executeQuery(req);
}

car pour moi lorsqu'on se connecte À LA BASE on ne peut pas faire une recherche d'ID : pour moi ca ne me semble pas logique : c'est sur une TABLE qu'on fait la recherche d'ID.

Enfin bref : voilà mon script :
import java.io.IOException;

import java.io.PrintWriter;

 
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 
import java.sql.*;
 
import java.lang.String; 

 
import java.util.regex.* ;

 
public class Omar extends HttpServlet 

{

    

    Statement stmt = null;

    ResultSet rs = null;

    private static Pattern pattern;

    private static Matcher matcher;

    

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException

    {     
        //Nom de mon pilote

        String pilote = "com.mysql.jdbc.Driver";

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();

        out.println("<html>");

        out.println("<head>");

        out.println("<title>Hello World!</title>");
        out.println("</head>");

        out.println("");

           //test des xpressions rgulires

        try

        {

            pattern = Pattern.compile("[a-z]");

            matcher = pattern.matcher("abc");

               out.println("---------Test des xpressions rgulires--------
");

               int i=0;

               out.println("Le nombre des groupes: "+matcher.groupCount()+"
");

               while(matcher.find()) 

               {

                   out.println("Le texte ""+matcher.group(i)+"" dbute  "+matcher.start()+" et termine  "+matcher.end()+"
");

                   i++;

               }

               /*String s = matcher.replaceAll("chocolat");

               out.println(s);

               while(matcher.find()) 

            {
                out.println("Trouv !
");

            }*/

               out.println("
");

        }

        catch(PatternSyntaxException e)

        {

            out.println("Expressions rguliere"+e);

        }

        catch(Exception e)

        {

             
        }

        try

        {

               Class.forName(pilote);

            java.sql.Connection conn = java.sql.DriverManager.getConnection(

              "jdbc:mysql://127.0.0.1:3306/BIOTECH","root","root");

            stmt = conn.createStatement();
            String req="SHOW TABLES";

            rs = stmt.executeQuery(req);

 
            // or alternatively, if you don't know ahead of time that

            // the query will be a SELECT...

 
            if (stmt.execute(req)) 

            {

                rs = stmt.getResultSet();

            }

               out.println("---------Test de la base--------
");
            while(rs.next())

            {

                out.println("Id: "+rs.getInt("id"));

            }

        } 

        catch(Exception e)

        {

            out.println("Connection rate: "+e);

        } 

        out.println("");

        out.println("</html>");

    }

}


j'ai le message d'erreur suivant :

---------Test des éxpressions régulières--------

Le nombre des groupes: 0

Le texte "a" débute à 0 et termine à 1

Connection ratée: com.mysql.jdbc.CommunicationsException:
Communications link failure due to underlying exception: ** BEGIN
NESTED EXCEPTION ** java.net.SocketException
MESSAGE: java.security.AccessControlException: access denied
(java.net.SocketPermission 127.0.0.1:3309 connect,resolve)
STACKTRACE:
java.net.SocketException: java.security.AccessControlException: access
denied (java.net.SocketPermission 127.0.0.1:3309 connect,resolve) at
com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
at com.mysql.jdbc.Connection.(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:525)

Voilà: j'ai cherché sur Google mais la plupart des réponses (proposés à cette erreur )correspondent au fait que le server et la base ne se situent pas sur le même ordinateur : alors que moi c'est le cas : ils sont belles et biens sur mon ordi

Quelqu'un a une idée ?

1 réponse

Messages postés
12
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
21 avril 2008

autre petite chose que j'ai oublié de préciser : c'est que dans le message d'erreur il y a spécifié : 3309
alors que dans mon script j'ai spécifié 3306 ! (qui est bien mon port : vérifier grâce à la commande : mysql -?)