【发布时间】:2021-06-23 01:19:32
【问题描述】:
我正在尝试构建一个 Web 应用程序,它应该非常简单。但我被困在建立一个登录网站。
我已经用表 users_db 构建了一个 mysql 数据库 quizdb。当我在普通的 java 项目中运行此代码时,一切正常。但是当我在带有 Tomcat 9 和 MySQL 8.0.23 的 JavaEE 项目中运行它时,我得到了异常:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver。包含库“mysql:mysql-connector-java:8.0.23”。
validate.java
package com.example.IUBHQuiz;
import java.sql.*;
public class validate {
public static boolean checkUser(String email,String pass)
{
boolean st =false;
try {
//loading drivers for mysql
Class.forName("com.mysql.cj.jdbc.Driver");
//creating connection with the database
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/quizdb","root","1234");
PreparedStatement ps = con.prepareStatement("select * from quizdb.users_db where username=? and pass=?");
ps.setString(1, email);
ps.setString(2, pass);
System.out.println(email + pass);
ResultSet rs =ps.executeQuery();
st = rs.next();
}
catch(Exception e) {
e.printStackTrace();
}
return st;
}
}
在我添加的 pom.xml 中
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
编辑: 我使用 IntelliJ 作为 IDE,并通过 Project Settings -> Libraries -> + -> From Maven ->
添加库还有承诺的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>IUBHQuiz</artifactId>
<version>1.0-SNAPSHOT</version>
<name>IUBHQuiz</name>
<packaging>war</packaging>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<junit.version>5.7.0</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.0</version>
</plugin>
</plugins>
</build>
</project>
谢谢你帮助我。 贾尼克
【问题讨论】:
-
你如何部署你的应用程序?您是否使用 Maven 创建 WAR?您可以添加您在问题中使用的
pom.xml(edit 您的问题,不要将其作为评论发布)。 -
包含库“mysql:mysql-connector-java:8.0.23” - 显然它不是(或者是错误的)。您可能想详细说明您认为该库是如何包含在运行时环境中的(不仅仅是在通过 maven 构建时)
-
如果您使用 IntelliJ 进行部署,请尝试使用
mvn package并手动部署您将在目标目录中找到的 WAR 文件。如果可行,则说明您的 IntelliJ 配置有问题。