我在将我的Maven Web项目连接到Netbeans中的MySQL数据库时遇到问题。每当我尝试连接时,都会抛出
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/Store
我已将mysql-connector-java版本5.1.38依赖项添加到pom.xml文件中。然后我将mysql-connector-java-5.1.38-bin.jar添加到$ CATALINA_HOME / lib文件夹中。 WEB-INF / lib文件夹包含相同的.jar文件。如果我正在尝试
Class.forName("com.mysql.jdbc.Driver");
我的项目正在连接到数据库,没有任何例外。
我的Servlet方法下面连接到MySQL数据库
public void connectToDB(){
try{
String URL = "jdbc:mysql://localhost:3306/Store";
String username = "root";
String password = "sesame";
Connection connection = DriverManager.getConnection(URL, username, password);
System.out.println("DB has been connected!!!!!!!!!!!!!!!!!!");
}catch(SQLException ex){
for(Throwable t : ex){
t.printStackTrace();
}
}
}
URL变量(端口号和主机名)是正确的。问题是JDBC驱动程序根本没有自动加载。
我在这里搜索了大部分问题,但没有找到任何有用的信息。
答案 0 :(得分:1)
在我的情况下,使用Catalina OS的Mac,mysql-connector-java-8.0.19.jar
和使用Maven的NetBeans项目,我需要为com.mysql.cj.jdbc.Driver
而不是com.mysql.jdbc.Driver
加载类。
注意“ cj”。
Class.forName("com.mysql.cj.jdbc.Driver");
必须先于SQL驱动程序连接请求。 我完全不知道为什么,因为据我了解,在JDBC 4.0之后,不需要预加载任何SQL驱动程序类。
答案 1 :(得分:0)
你也应该添加这部分
public void connectToDB(){
try{
String JDBC_DRIVER = "com.mysql.jdbc.Driver";
String URL = "jdbc:mysql://localhost:3306/Store";
String username = "root";
String password = "sesame";
Class.forName(JDBC_DRIVER);
Connection connection = DriverManager.getConnection(URL, username, password);
System.out.println("DB has been connected!!!!!!!!!!!!!!!!!!");
}catch(SQLException ex){
for(Throwable t : ex){
t.printStackTrace();
}
}
}