2010-01-03 7 views
0

J'essaie de me connecter à la base de données mysql à partir de la page jsp. Le code de connexion est comme ci-dessousErreur de connexion MySQL avec JSP

InitialContext ic=new InitialContext(); 
    DataSource ds=(DataSource)ic.lookup("jdbc:mysql://localhost:3306/"); 
    Connection con=ds.getConnection(); 
    Statement stmt = con.createStatement(); 

quand j'ouvre la page que je reçois l'erreur suivante javax.servlet.ServletException: javax.naming.NamingException: Recherche a échoué pour « jdbc: mysql: // localhost: 3306/» dans SerialContext [Root exception est javax.naming.NameNotFoundException: jdbc: mysql:]

peut quelqu'un s'il vous plaît me dire ce qui ne va pas avec ce ...

+0

Classmate: http://stackoverflow.com/questions/1994073/glassfish-error – BalusC

Répondre

2

Vous essayez de regarder une connexion persistante utilisant JNDI. JNDI est utilisé pour stocker et accéder aux ressources dans un conteneur de servlet, mais vous utilisez une chaîne de connexion JDBC au lieu d'une référence JNDI.

Si vous souhaitez vous connecter directement à votre base de données via JDBC dans la page, vous voulez quelque chose comme ce qui suit pour obtenir votre connexion.

 Connection conn = null; 

     try { 
      String userName = "myuser"; 
      String password = "mypassword"; 
      String url = "jdbc:mysql://localhost:3306/mydb"; 
      Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
      conn = DriverManager.getConnection (url, userName, password); 
     } catch (Exception e) { 
      System.err.println ("Cannot connect to database server"); 
     } 

Si, d'autre part que vous voulez utiliser JNDI, vous devez stocker la connexion dans JNDI premier, alors l'accès dans votre JSP via le nom utilisé pour le stocker. C'est un processus plus complexe, alors voici un link to the appropriate place in the Tomcat documentation qui explique comment le faire.

1

Dans le cas le plus simple, vous faites:

Class.forName(driverClass); 
Connection connection = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/", userName, password); 

Si vous souhaitez utiliser un pool de connexion défini par le conteneur, et que vous utilisez tomcat, jetez un oeil à this page

En tant que sidenote, Je ne recommande pas de se connecter à une base de données à partir d'un .jsp. Utilisez une servlet pour cela. JSP est une technologie de présentation et n'est pas supposée avoir une logique de connectivité de base de données.