一尘不染

JSP的MySQL连接错误

jsp

我正在尝试从jsp页面连接到mysql数据库。连接代码如下

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

当我打开页面时,出现以下错误javax.servlet.ServletException:javax.naming.NamingException:在SerialContext中查找“
jdbc:mysql:// localhost:3306 /”失败[根异常是javax.naming.NameNotFoundException:jdbc
:mysql:]

有人可以告诉我这是怎么回事…


阅读 231

收藏
2020-06-10

共1个答案

一尘不染

您正在尝试使用JNDI查找持久连接。JNDI用于在servlet容器中存储和访问资源,但是您使用的是JDBC连接字符串而不是JNDI引用。

如果要在页面中通过JDBC直接连接到数据库,则需要类似以下内容的连接。

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

另一方面,如果要使用JNDI,则需要先将连接存储在JNDI中,然后通过用于存储连接的名称在JSP中访问它。这是一个更复杂的过程,因此这里是指向Tomcat文档相应位置链接,该链接说明了如何执行此操作。

2020-06-10