未找到合适的驱动程序用于连接URL(MySQL + WildFly)

问题描述 投票:0回答:1

我面临以下问题:我需要使我的Web应用程序与数据库一起使用。为此,我在MySQL中创建了数据库。该数据库的连接URL为:jdbc:mysql://localhost:3306/lab3?useUnicode=true&serverTimezone=UTC。另外,我在WildFly Management控制台中创建了数据源:

enter image description here

我测试了连接,一切正常。但是当我运行项目时,出现以下错误:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/lab3?useUnicode=true&serverTimezone=UTC
13:28:15,524 ERROR [stderr] (default task-1)    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
13:28:15,524 ERROR [stderr] (default task-1)    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
13:28:15,524 ERROR [stderr] (default task-1)    at deployment.lab5_ear_exploded.ear.web.war//model.Model.<init>(Model.java:13)
13:28:15,525 ERROR [stderr] (default task-1)    at deployment.lab5_ear_exploded.ear.web.war//controller.NewJSFManagedBean.<init>(NewJSFManagedBean.java:17)
13:28:15,525 ERROR [stderr] (default task-1)    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
13:28:15,525 ERROR [stderr] (default task-1)    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
13:28:15,526 ERROR [stderr] (default task-1)    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
13:28:15,526 ERROR [stderr] (default task-1)    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
13:28:15,526 ERROR [stderr] (default task-1)    at java.base/java.lang.Class.newInstance(Class.java:584)
13:28:15,527 ERROR [stderr] (default task-1)    at [email protected]//com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:162)
13:28:15,527 ERROR [stderr] (default task-1)    at [email protected]//com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:76)
13:28:15,527 ERROR [stderr] (default task-1)    at [email protected]//com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:387)
...

这是我尝试通过代码连接到数据库的方式:

@ApplicationScoped
public class Model {

    private Statement statement;

    public Model() {
        try {
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/lab3?useUnicode=true&serverTimezone=UTC", "root", "12345");
            statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM customer");
            if (resultSet.next()) {
                System.out.println(resultSet.getString("address"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

所以,也许有人知道出了什么问题?我将不胜感激。预先感谢!

java mysql wildfly
1个回答
0
投票

如果使用Gradle,则需要添加依赖项

    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.19'

如果使用Maven,则需要添加依赖项

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.19</version>
    </dependency>

如果要直接下载JAR并放入WEB-INF \ lib,请从此处下载

    https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.19/mysql-connector-java-8.0.19.jar
© www.soinside.com 2019 - 2024. All rights reserved.