与mySQL数据库的Java连接

时间:2016-09-14 13:59:23

标签: java mysql jdbc

我在phpMyAdmin有一个练习数据库。我使用XAMPP。我正处于利用数据库学习连接的早期阶段。我遵循教程,我认为我理解这个概念,一切都很酷。但我提出了一个问题,尽管互联网上有答案,我无法解决它。这是我的代码:

import java.sql.*;

public class DBConnect {

    private Connection connection;
    private Statement statement;
    private ResultSet result;

    public DBConnect(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/practicedb"); //code stucks here and after some minutes it is throwing an exception
            System.out.println("Connected");//this is never executed.
            statement = connection.createStatement();

        } catch (Exception ex) {
            System.out.print("Error in Constractor: "+ex);
        }
    }

    public void getData() {

        try {

            String query = "select * from cars";

            result = statement.executeQuery(query);
            while (result.next()) {
                String name = result.getString("carName");
                String id = result.getString("carID");
                String modelNum = result.getString("modelNumber");
                System.out.println("Car name: " + name + ", " + "Car ID: " + id + ", " + "Car model number: " + modelNum);
            }

        } catch (Exception ex) {
            System.out.println(ex);
        }

    }
}

在主类中,我创建了一个类的实例,然后调用getData()

代码卡在那一行:

connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/practicedb");

它抛出了:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

成功发送到服务器的最后一个数据包是0毫秒前。驱动程序尚未收到server.java.lang.NullPointerException

中的任何数据包

这里回答了类似的问题:answer

但建议很差。我试过冲dns。我检查了URL,这是我连接到phpmyadmin上的数据库的URL。我将localhost更改为我的ip地址。但所有那些只是不工作。

我真的很感激帮助。是管理接收知识的第一步,我现在实际上无法继续。谢谢:))

  • 我注意到如果我将localhost:1234更改为随机的localhost:5432,它会立即抛出错误。但是当我在1234(我已经通过xampp配置选择的端口)上获得它时,程序运行大约5分钟,然后终止异常

1 个答案:

答案 0 :(得分:-3)

通常MySQL会侦听默认端口3306。 如果您的数据库名为 practomeb ,那么您的代码应如下所示:

private Connection connection;    

try {
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/practicedb");
    System.out.println("Connected");
} catch (Exception ex) {
    System.out.print("Error creating connection: "+ex);
}