JSP无法连接到tomcat7上的mysql数据库
问题描述:
嗨,我是新来的jsp &试图显示一些数据从MySQL数据库。为此,我在tomcat 7服务器上安装了JDK1.7,MySQL Server 5.5,mysql-connector-java-5.1.19-bin.jar作为连接器。我已经创造了%CATALINA_HOME%的webapps文件/ ROOT/WS/文件夹即的index.jsp与代码JSP无法连接到tomcat7上的mysql数据库
<%@ page import="java.sql.*" %>
<%
String connectionURL = "jdbc:mysql://localhost:test?user=root;password=sumant";
Connection connection = null;
Statement statement = null;
ResultSet rs = null;
%>
<html><body>
<%
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, "", "");
statement = connection.createStatement();
rs = statement.executeQuery("SELECT name FROM store");
while (rs.next()) {
out.println(rs.getString("name")+"<br>");
}
rs.close();
%>
</body></html>
而且在URL呼叫:的http://本地主机:8080/WS /指数.jsp我越来越
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error() that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /ws/index.jsp at line 14
11:
12:
13: <%
14: Class.forName("org.gjt.mm.mysql.Driver").newInstance();
15: connection = DriverManager.getConnection(connectionURL, "", "");
16: statement = connection.createStatement();
17: rs = statement.executeQuery("SELECT name FROM store");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
javax.servlet.ServletException: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
org.apache.jsp.ws.index_jsp._jspService(index_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:126)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
org.apache.jsp.ws.index_jsp._jspService(index_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
现在我没有得到什么错在这里。请帮我连接到mysql数据库。 谢谢。
答
将mysql_connector/j驱动程序jar文件放在类路径中。然后连接使用
Class.forName("com.mysql.jdbc.Driver");
也是你的连接网址应该有mysql的端口是3306
String connectionURL = "jdbc:mysql://localhost:3306/test?user=root;password=sumant";
答
连接使用com.mysql.jdbc.Driver
类(即所谓的JDBC驱动程序),而不是org.gjt.mm.mysql.Driver
。任何第三方API都需要添加到classpath中才能使用它。所以,这个JAR需要在Tomcat中可见。所以,我建议将mysql-connector-java-5.1.19-bin.jar
放在物理位置/WEB-INF/lib
您的项目的目录是ws您的情况。
在早些时候,如果jar不在物理位置,我遇到过ClassNotFoundException
。然后重新启动Tomcat应该可以工作。
仍然没有工作。我已经从http://dev.mysql.com/downloads/connector/j/下载了连接器,并且Driver.class位于jar文件的org \ gjt \ mm \ mysql目录中。 – Sumant 2012-04-09 10:03:30
你为什么要把它放在那个目录下?试着把它放在lib – mykey 2012-04-09 10:07:15