Невозможно подключиться к базе данных mysql с помощью страницы jsp, но ниже ошибка java.sql.SQLException: не найден подходящий драйвер jdbc:mysql:// localhost:3306/dbname

#mysql #eclipse #jsp #html4

#mysql #eclipse #jsp #html4

Вопрос:

Вот мой код:

  <%@page import="java.io.FileInputStream"%>
    <%@page import="java.io.File"%>
    <%@page import="java.io.InputStreamReader"%>
    <%@page import="java.net.URL"%>
    <%@page import="java.io.FileReader"%>
    <%@page import="java.io.BufferedReader"%>
    <%@page import="java.io.IOException"%>
    <%@page import="java.text.DateFormat"%>
    <%@page import="java.text.SimpleDateFormat"%>
    <%@page import="java.util.Arrays"%>
    <%@page import="java.util.Calendar"%>
    <%@page import="java.util.ArrayList"%>
    <%@page import="java.util.List"%>
    <%@ page import="java.sql.*" %>
    <%@ page import ="javax.sql.*" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="stylesheet" href="styles.css">
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>


    </head>
    <body>
        <%
            try{    
                //Database Code
                java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/prodnotification?autoReconnect=trueamp;useSSL=false", "root","Rahulhi123"); 
                        Statement st= con.createStatement();
                if (null == con) {
                    System.out.println("Database Connection Error.");
                } else {
                    System.out.println("Database Connected.");//Database connection
                }
                }catch(SQLException e)
                {
                    e.printStackTrace();
                }
            %>
    </body>
    </html>
  

Это мой код, получающий ошибку ниже:

 java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/prodnotification?autoReconnect=trueamp;useSSL=false
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at org.apache.jsp.Home_jsp._jspService(Home_jsp.java:180)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1102)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:788)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1485)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
  

Комментарии:

1. код ошибки: 0 sqlstate: 08001

Ответ №1:

Я думаю, вы пропустили загрузку драйвера базы данных перед созданием соединения. Кроме того, убедитесь, что jar соответствующего драйвера mysql jdbc помещен в ваш classpath.

 Class.forName("com.mysql.jdbc.Driver");
  

Поскольку это веб-проект, вы должны поместить jar-файл драйвера под yourapp/WEB-INF/lib

Комментарии:

1. СЕРЬЕЗНОЕ: Servlet.service() для сервлета [jsp] в контексте с путем [/Production_Notification] выдало исключение [Исключение возникло при обработке страницы JSP / Home.jsp в строке 40

2. в этой строке Class.forName(«com.mysql.jdbc.Driver»);

3. Добавили ли вы jar-файл драйвера mysql jdbc в свой путь к классу? если нет, то вы можете найти его здесь — dev.mysql.com/downloads/connector/j

4. Я добавил jar-файл драйвера jdbc в classpath.

5. можете ли вы протестировать его сейчас?