代码有什么问题,调试时有很多错误。我正在编写一个单例类的代码来连接数据库mysql。
这是我的代码
package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySingleTon {
String url = "jdbc:mysql://localhost:3306/";
String dbName = "test";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "";
private static MySingleTon myObj;
private Connection Con ;
private MySingleTon() {
System.out.println("Hello");
Con= createConnection();
}
@SuppressWarnings("rawtypes")
public Connection createConnection() {
Connection connection = null;
try {
// Load the JDBC driver
Class driver_class = Class.forName(driver);
Driver driver = (Driver) driver_class.newInstance();
DriverManager.registerDriver(driver);
connection = DriverManager.getConnection(url + dbName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
return connection;
}
/**
* Create a static method to get instance.
*/
public static MySingleTon getInstance() {
if (myObj == null) {
myObj = new MySingleTon();
}
return myObj;
}
public static void main(String a[]) {
MySingleTon st = MySingleTon.getInstance();
}
}
我是java的新手。请帮忙。
答案 0 :(得分:113)
项目中似乎没有包含 mysql连接库。按照建议的解决方案之一解决问题:
将mysql-connector依赖项添加到pom.xml项目文件:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
以下是您的所有版本:https://mvnrepository.com/artifact/mysql/mysql-connector-java
手动将jar库添加到项目中。
右键单击项目 - &gt;构建路径 - &gt;配置构建路径
在Libraries Tab
按 Add External Jar
和Select
你的jar。
您可以找到mysql-connector here
的zip构建项目时,java会抛出异常,因为找不到mysql连接库中的文件(com.mysql.jdbc.Driver类)。解决方案是将库添加到项目中,java将找到com.mysql.jdbc.Driver
答案 1 :(得分:50)
如果IDE中出现错误(编译时错误),则需要将mysql-connector jar文件添加到libs中,并将其添加到引用的项目库中。
如果在运行时出现此错误,那么可能是因为您没有将mysql-connector JAR文件包含到您的Web服务器的lib文件夹中。
将mysql-connector-java-5.1.25-bin.jar
添加到您的类路径以及您的网络服务器的lib目录中。 Tomcat lib路径以Tomcat 6.0\lib
答案 2 :(得分:11)
对于基于Gradle的项目,您需要依赖MySQL Java Connector:
dependencies {
compile 'mysql:mysql-connector-java:6.0.+'
}
答案 3 :(得分:11)
您必须在类路径中包含MySQL MySQL Connector Jar的驱动程序jar。
如果您使用的是Eclipse: How to add dependent libraries in Eclipse
如果使用命令行,请使用java的-cp参数包含驱动程序jar的路径。
java -cp C:\lib\* Main
答案 4 :(得分:9)
(mysql-connector-java-bin)
答案 5 :(得分:8)
JDBC API主要由独立于任何数据库的接口组成。每个实现JDBC API的数据库都需要特定于数据库的驱动程序。
首先从www.mysql.com下载MySQL连接器jar,然后:
Right Click the project -- > build path -- > configure build path
在图书馆标签中按Add External Jar
并选择你的广告。
答案 6 :(得分:6)
每个人都写了一个答案,但我仍然感到惊讶的是,没有人使用最好的简单方法实际回答它。
人们回答包括jar文件。但是,错误仍然会发生。
原因是,在运行项目时未部署jar。因此,我们需要做的就是告诉IDE也部署这个jar。
这里的人回答了很多次,因此将该jar文件放在WEB-INF的lib文件夹中。看起来还可以,但为什么要手动进行。有简单的方法。检查以下步骤:
第1步:如果您尚未将jar文件引用到项目中,请像这样引用它。
右键单击项目,然后转到项目属性。 然后,转到Java构建路径,然后通过该路径添加外部jar文件。
但这仍然不能解决问题,因为通过构建路径添加外部jar仅有助于编译类,并且在运行项目时不会部署jar。 < / strong>为此,请按照以下步骤操作
右键单击项目,然后转到项目属性。 然后,转到 Deployment Assembly ,然后按 Add ,然后转到 java构建路径条目,并添加您的库(无论是jstl,mysql)或任何其他jar文件。将它们添加到部署中。 下面是显示它的两张图片。
答案 7 :(得分:3)
对于基于Maven的项目,您需要依赖项。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
答案 8 :(得分:2)
驱动程序连接器不在您的构建路径中。配置构建路径并将其指向'mysql-connector-java-5.1.25-bin.jar'(检查您使用的版本)。或者你可以使用maven:D
答案 9 :(得分:2)
在项目中进入文件夹库 - &gt;右键单击 - &gt;添加库 - &gt; Mysqlconnector 5.1
答案 10 :(得分:1)
这是因为错误中子目录中的位置不存在WEB-INF文件夹。您可以编译应用程序以使用public_html下的WEB-INF文件夹,也可以将子文件夹中的WEB-INF文件夹复制到上面的错误中。
答案 11 :(得分:1)
在我看来,netbeans版本maven项目7.2.1看似微不足道。项目中有一个名为dependencies的文件夹。右键单击然后它会弹出一个弹出窗口,您可以在其中搜索包。在查询区域中输入
mysql-connector
它会调出匹配(似乎它会对某些存储库执行此操作)。双击然后安装。
答案 12 :(得分:0)
由于未定义类路径,也会发生异常。
经过数小时的研究并且经历了数百页,问题在于未定义库的类路径。
在Windows机器中按如下方式设置类路径
set classpath=path\to\your\jdbc\jar\file;.
答案 13 :(得分:0)
我理解你的问题在你的pom.xml中添加这个依赖关系你的问题将会解决,
https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38
答案 14 :(得分:0)
如果您正在使用tomcat,那么您还应该将数据库连接器jar文件复制到tomcat / lib。这对我有用
答案 15 :(得分:0)
对于IntelliJ Idea,请转到您的项目结构(文件,项目结构),然后将mysql连接器.jar文件添加到全局库中。到达那里后,右键单击它,然后选择“添加到模块”。点击“应用” /“确定”,您应该一切顺利。
答案 16 :(得分:0)
自2020年起必须使用此
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
答案 17 :(得分:0)
我正在 Eclipse IDE 中使用SQLite数据库开发一个简单的JavaFX11应用程序。为了生成报告,我添加了Jasper罐子。突然,它抛出“此” 错误。
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
运行良好(在此之前)。但是突然!
对于这个简单的应用程序,我不使用Maven或其他管理器。我正在手动添加罐子。
我创建了“用户库”,并从外部文件夹添加了我的jar。
问题出现区域: 我的“用户库”被标记为系统库。我刚刚删除了标记。现在它不是系统库。 “我的项目现在很好”。
我自己的调试:尝试过其他事情: 运行时配置:尝试删除库并一个一个地添加jar,然后查看。 -在这里,您必须一个一个地删除所有jar,没有全选并在运行配置中立即在eclipse中删除。因此,错误消息从一个罐子变为另一个罐子。
希望这对某人有帮助。
答案 18 :(得分:0)
I was also facing the same problem
下载 mysql-connector-java jar文件
将其粘贴到
C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib
也希望为您工作!!