![](/img/trans.png)
[英]Cannot create JDBC driver of class 'com.mysql.jdbc.Driver' for connect URL 'jdbc:mysql//localhost:3306/
[英]Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/web13?useSSL=false&serverTimezone=UTC'
我創建了一個屬性文件
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) 一樣注冊。 但是我這個版本的驅動好像可以自己注冊,所以這個方案不行。
錯誤:
2018 年 10 月 2 日上午 9:46:09 org.apache.catalina.core.StandardContext 重新加載信息:重新加載名稱為 [/WEB13] 的上下文已完成
java.sql.SQLException:無法在 org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource .java:2224) 在 org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2104) 在 org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563) 在 org.apache.commons。 dbutils.AbstractQueryRunner.prepareConnection(AbstractQueryRunner.java:319) 在 org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:327) 在 com.itheima.login.LoginServlet.doGet(LoginServlet.java:36) 在 javax .servlet.http.HttpServlet.service(HttpServlet.java:634) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 org.apache.tomcat.websocket.serv er.WsFilter.doFilter(WsFilter.java:53) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org.apache.catalina.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.authenticatorBase.Authenticator. (AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache。 catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java) 343) 在org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) ache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770) 在 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.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:748) ) 引起:java.sql.SQLException: 在 org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2209) 的 java.sql.DriverManager.getDriver(DriverManager.java:315) 沒有合適的驅動程序... 29 更多
@朱紫妍,
您在db.properties
添加了錯誤的網址:
db 屬性中的 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);
}
}
}
您的屬性文件缺少屬性,這意味着 DBCP 無法創建/初始化驅動程序。
你需要添加
driverClassName = org.mysql.jdbc.Driver
我只是遇到了同樣的問題,但我正在使用 glassfish。 如果將來有人在嘗試在 glassfish 服務器中建立數據庫連接時遇到此問題,解決方案是將java mysql connector
添加到 glassfish 服務器,那么您的問題就解決了。
轉到 .../glassfish-installation-folder/Glassfish[your-version]/glassfish/lib/here-paste-your-mysql-connector-driver.jar
這是我的榮幸。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.