开发者

MySQL Connection Error with JSP

I am trying to connect to mysql database from jsp page. The connection code is as below

   InitialContext ic=new InitialContext();
   DataSource ds=(DataSource)ic.l开发者_如何学Pythonookup("jdbc:mysql://localhost:3306/");
   Connection con=ds.getConnection();
    Statement stmt = con.createStatement();

when i open the page i get the following error javax.servlet.ServletException: javax.naming.NamingException: Lookup failed for 'jdbc:mysql://localhost:3306/' in SerialContext [Root exception is javax.naming.NameNotFoundException: jdbc:mysql:]

can some one please tell me what is wrong with this...


You're trying to look up a persistent connection using JNDI. JNDI is used to store and access resources in a servlet container, but you're using a JDBC connection string instead of a JNDI reference.

If you want to connect direct to your database via JDBC in the page, you want something like the following to get your connection.

       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");
       }

If, on the other hand you want to use JNDI, you need to store the connection in JNDI first, then access it in your JSP via the name you used to store it. It's a more complex process, so here's a link to the appropriate place in the Tomcat documentation that explains how to do it.


In the simplest case, you do:

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

If you want to use a container-defined connection pool, and you are using tomcat, take a look at this page

As a sidenote, I don't recommend connecting to a database from a .jsp. Use a servlet for that. JSP is a presentation technology and isn't supposed to have database connectivity logic in it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜