我知道这个问题已被问了很多时间,但我从未找到适合我的答案。
我对这一行有疑问,说通常是ClassNotFoundException。
未处理的异常:java.lang.ClassNotFoundException
在控制台中:
java.sql.SQLException:没有为jdbc找到合适的驱动程序:mysql:xxxxxxxxx
Class.forName("com.mysql.jdbc.Driver");
但是我在我的项目设置中包含了jar( mysql-connector-java-5.1.41-bin.jar ),我把它放在我的java安装中的所有lib目录中(JRE)和JDK)。
这是更多代码: 公共类连接实现了Listener {
static final String DB_URL = "jdbc:mysql:xxxxxxxxx";
static final String USER = "xxxxxx";
static final String PASS = "xxxxxx";
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
Connection conn = null;
Statement stmt = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql = "INSERT INTO Players (UUID, Pseudo, Rank, Level, Current_xp, Nbr_kick, Nbr_ban) VALUES (" + p.getUniqueId() + ", " + p.getName() + ", Dev, 1, 0, 0, 0);";
ResultSet rs = stmt.executeQuery(sql);
rs.close();
stmt.close();
conn.close();
}
catch(SQLException se)
{
getLogger().warning(se.toString());
}
}
这是我的分类:The classpath of the project
编辑:
好吧,它的工作原理如下:我使用了下面的代码(不是我的),经过一些修正后,它有效(不要像我一样,不要忘记 jdbc中的两个斜杠: MySQL的:// XXXX:3306 / XXXX
System.out.println("-------- MySQL JDBC Connection Testing ------------");
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException es) {
System.out.println("Where is your MySQL JDBC Driver?");
es.printStackTrace();
return;
}
System.out.println("MySQL JDBC Driver Registered!");
Connection connection = null;
try {
connection = DriverManager
.getConnection("jdbc:mysql://xxxx:3306/xxxx", USER, PASS);
} catch (SQLException es) {
System.out.println("Connection Failed! Check output console");
es.printStackTrace();
return;
}
if (connection != null) {
System.out.println("You made it, take control your database now!");
} else {
System.out.println("Failed to make connection!");
}
答案 0 :(得分:0)
您应该将mysql驱动程序依赖项添加到maven或gradle中(如果您使用maven或gradle项目),或者从此link下载jar文件并将其添加到项目的类路径中。它必须工作。如果不是 - 你做错了什么。