2015-05-04 106 views
1

尝试连接到mysql数据库时出现错误。我有一个DatabaseAccess.java:servlet未连接到mysql数据库

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 

@SuppressWarnings("serial") 
public class DatabaseAccess extends HttpServlet { 

public void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    // Set response content type 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    String title = "Database Result"; 
    String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " 
      + "transitional//en\">\n"; 
    out.println(docType + "<html>\n" + "<head><title>" + title 
      + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" 
      + "<h1 align=\"center\">" + title + "</h1>\n"); 
    try { 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     Connection conn = DriverManager.getConnection(
       "jdbc:mysql://localhost:3306/test", "root", "root"); 
     PreparedStatement stmt = conn 
       .prepareStatement("select name, pass, mail, phone from user"); 
     ResultSet rs = stmt.executeQuery(); 
     while (rs.next()) { 
      String name = rs.getString("name"); 
      String pass = rs.getString("pass"); 
      String mail = rs.getString("mail"); 
      String phone = rs.getString("phone"); 

      out.println("ID: " + name + "<br>"); 
      out.println(", Age: " + pass + "<br>"); 
      out.println(", First: " + mail + "<br>"); 
      out.println(", Last: " + phone + "<br>"); 
     } 
     out.println("</body></html>"); 

     rs.close(); 
     stmt.close(); 
     conn.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
} 

当我运行servlet类,它的工作原理部分,它是给我这些错误:

SEVERE: Exception creating UserDatabase MBeans for UserDatabase 
javax.management.MalformedObjectNameException: Invalid character ',' in key part of property 
    at javax.management.ObjectName.construct(Unknown Source) 
    at javax.management.ObjectName.<init>(Unknown Source) 
    at org.apache.catalina.mbeans.MBeanUtils.createObjectName(MBeanUtils.java:868) 
    at org.apache.catalina.mbeans.MBeanUtils.createMBean(MBeanUtils.java:377) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:192) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:148) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:110) 
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:82) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:689) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 

May 04, 2015 5:43:57 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
May 04, 2015 5:43:57 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.59 
May 04, 2015 5:43:58 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom 
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [218] milliseconds. 
May 04, 2015 5:43:59 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
May 04, 2015 5:43:59 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
May 04, 2015 5:43:59 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 2026 ms 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at DatabaseAccess.doGet(DatabaseAccess.java:25) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Unknown Source) 

我已经加入了MySQL连接器使用mysql-connector-java的-5.1.35.jar也可以构建路径。如何解决这些错误

+0

加载您必须MySQL连接添加到您的库。 –

+0

你的第一个问题与数据库无关。自2007年以来,您不需要'Class.forName()'调用。 – EJP

回答

2

添加你的MySQL连接器的Java-5.1.35.jar在WEB-INF/lib文件夹罐子才能被通过tomcat的

+0

谢谢您的回答,现在它可以正常工作 – Ashok

0
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 

意味着你不包括各自的驱动程序jar到你的战争或类路径。尝试包括Jar文件来解决这个问题。

0

您错过了您的类路径中的Mysql驱动程序类:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver下载并将其添加到您的类路径中。

Buildpath不是classpath !!

0

你的错误是

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 

添加MySQL的JAR到类路径中。如何完成取决于你的servlet容器。阅读文档。

0

那么有驱动程序丢失。

这里下载jar并放在Lib文件夹中。

jar Connector

并再次运行问题将得到解决。