Java JDBC没有’;无法连接到数据库
下面的代码与YouTube视频中的代码完全相同,但对我来说并不适用。预期的输出是打印输出“已连接”到系统,这意味着JDBC已成功连接到数据库。但我得到了这个错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障 成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包。 这是我的密码:Java JDBC没有’;无法连接到数据库,java,mysql,jdbc,Java,Mysql,Jdbc,下面的代码与YouTube视频中的代码完全相同,但对我来说并不适用。预期的输出是打印输出“已连接”到系统,这意味着JDBC已成功连接到数据库。但我得到了这个错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障 成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包。 这是我的密码: package sample; import java.sql.Connection; import jav
package sample;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Controller {
private static final String username = "root";
private static final String password = "";
private static final String connection = "jdbc:mysql://localhost/hello";
public static void main(String[] args) {
Connection conn = null;
try {
conn = DriverManager.getConnection(connection, username, password);
System.out.println("Connected");
}
catch (SQLException se) {
System.err.println(se);
}
}
}
我已经成功地将JDBC添加为一个库,与视频显示的完全一样,但它不起作用。我在堆栈溢出上看到了类似的问题,但没有一个解决了我的问题。任何帮助都将不胜感激,谢谢
JDBC版本:mysql-connector-java-5.1.47-bin.jar
链接失败意味着无法访问数据库,请确认您的数据库主机, 端口、用户名和密码。如果一切正常,请确认 DB服务器正在运行,尚未达到最大连接限制 如果您使用的是JDBC jar文件,则该文件可能已损坏。所以检查一下,我建议您使用Maven导入JDBC 您没有注册JDBC驱动程序。首先,注册它 使用
Class.forName(“com.mysql.jdbc.Driver”)代码>此
这是一个给你的帮助
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
我以为你在maven文件中放了适当的
并将com.mysql.cj.jdbc.Driver
用作更新版本的
在MySQL中实现java.sql.Driver的类的名称
Connector/J已从com.mysql.jdbc.Driver更改为
com.mysql.cj.jdbc.Driver。旧类名已被弃用
该错误意味着它无法连接。这不是Java代码的问题,而是连接字符串的问题。你可能想尝试明确指定端口号和确认主机名,等等。我尝试了在互联网上找到的几乎所有东西,但都不起作用,顺便说一句,我使用的是Mac电脑,但视频是在windows上完成的,所以你认为Mac电脑上的视频是相同的还是不同的?这不应该也不在我的经验中。您可以尝试将连接字符串更改为“jdbc:mysql://localhost:3306/hello“
。我假设屏幕截图来自同一台计算机上运行的某个东西?我怀疑MySql是否在您的计算机上运行,或者凭据是否正确。可能是Mac上的一个空pw。我不是Mac用户。@AbdullahAjmal-在phpMyAdmin中,显示变量,如“端口”
,并查看它返回什么。不,这不是“通信链路故障”错误的解决方案。在本例中,找到了驱动程序,但服务器没有响应。。。。那就好了。。无论如何,请检查您的数据库是否正常工作。。尝试在MySQL终端中执行任何查询链接失败意味着无法访问数据库,请确认您的数据库主机、端口、用户名和密码。如果一切正常,请确认DB服务器正在运行,并且尚未达到最大连接限制。()并移除JDBCJAR,然后使用maven导入。。。有时候你的JDBCJAR被破坏了你的数据库工作正常吗?