Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC没有’;无法连接到数据库_Java_Mysql_Jdbc - Fatal编程技术网

Java JDBC没有’;无法连接到数据库

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

下面的代码与YouTube视频中的代码完全相同,但对我来说并不适用。预期的输出是打印输出“已连接”到系统,这意味着JDBC已成功连接到数据库。但我得到了这个错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包。

这是我的密码:

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被破坏了你的数据库工作正常吗?