Не удается создать драйвер JDBC класса '' для URL-адреса подключения 'jdbc: mysql: // localhost: 3306 / web13? UseSSL = false & serverTimezone = UTC' - PullRequest
0 голосов
/ 02 октября 2018

Я создал файл свойств

url=jdbc:mysql://localhost:3306/web13?useSSL=false&serverTimezone=UTC
username=root
password=root

и создал пул соединений

    private static DataSource dataSource; 
static {

    try {
        //load properties file
        InputStream is = DBCPUtils.class.getClassLoader().getResourceAsStream("db.properties");
        //load input stream
        Properties props = new Properties();
        props.load(is);
        //create data source
        dataSource = BasicDataSourceFactory.createDataSource(props);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        throw new RuntimeException(e);
    }
}

Тогда у меня возникла проблема.Я искал некоторые ответы, они сказали, что драйвер должен быть зарегистрирован как Class.forName (com.mysql.jdbc.Driver).Но моя версия драйвера, кажется, может зарегистрироваться сама, поэтому это решение не может работать.

Ошибка :

02 октября 2018 г. 9:46:09 утра org.apache.catalina.core.StandardContext перезагрузка ИНФОРМАЦИЯ: Перезагрузка контекста с именем [/ WEB13] завершена

java.sql.SQLException: Невозможно создать драйвер JDBC класса '' для URL-адреса подключения 'jdbc: mysql: // localhost: 3306 / web13? useSSL = false & serverTimezone = UTC 'в org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory (BasicDataSource.java:2224) в org.apache.commons.dbcp2.BasicDataSataDataBasicDataSource.java:2104) в org.apache.commons.dbcp2.BasicDataSource.getConnection (BasicDataSource.java:1563) в org.apache.commons.dbutils.AbstractQueryRunner.prepareConnection (AbstractQueryRunner.java:apache.com или at9).dbutils.QueryRunner.query (QueryRunner.java:327) в com.itheima.login.LoginServlet.doGet (LoginServlet.java:36) в javax.servlet.http.HttpServlet.service (HttpServlet.java:6)x.servlet.http.HttpServlet.service (HttpServlet.java:741) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) в org.apache.catalina.cil.ChainFinder для приложений.Java: 166) в org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:53) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) в org..core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) при org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:199) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:490) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:139) в org.apache.catalina.portinvoke (ErrorReportValve.java:92) в org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:668) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:74) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.javag: at3).coyote.http11.Http11Processor.service (Http11Processor.java:408) в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) в org.apache.coyote.AbstractProtocol $ ConnectionHandler.proava:7) в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1415) в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в org.apache.tomcat.util.threads.TraunThunn ()java: 61) at java.lang.Thread.run (Thread.java:748) Причина: java.sql.SQLException: нет подходящего драйвера в java.sql.DriverManager.getDriver (DriverManager.java:315) на org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory (BasicDataSource.java:2209) ... еще 29

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

В вашем файле свойств отсутствует свойство, что означает, что DBCP не может создать / инициализировать драйвер.

Вам необходимо добавить

driverClassName = org.mysql.jdbc.Driver
0 голосов
/ 02 октября 2018

@ Ziyan Zhu,

Вы добавили неправильный url в db.properties:

url в свойствах базы данных как jdbc:mysql://localhost:3306/web13, где web13 - это имя вашей базы данных.

Кроме того, вам не хватает какого-либо метода в вашем пуле соединений, как описано выше здесь

import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

public class DBCPUtils {
    private static DataSource dataSource;
    static {
        try {
            // 1.Load the properties file input stream
            InputStream is = DBCPUtils.class.getClassLoader().getResourceAsStream("db.properties");
            // 2.Load the input stream
            Properties props = new Properties();
            props.load(is);
            // 3.create data source
            dataSource = BasicDataSourceFactory.createDataSource(props);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public static DataSource getDataSource() {
        return dataSource;
    }

    public static Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...