我面临以下问题:我需要使我的Web应用程序与数据库一起使用。为此,我在MySQL中创建了数据库。该数据库的连接URL为:jdbc:mysql://localhost:3306/lab3?useUnicode=true&serverTimezone=UTC
。另外,我在WildFly Management控制台中创建了数据源:
我测试了连接,一切正常。但是当我运行项目时,出现以下错误:
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();
}
}
}
所以,也许有人知道出了什么问题?我将不胜感激。预先感谢!
如果使用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