javafx程序将无法连接到MySQL

问题描述 投票:0回答:1

我在将javafx程序连接到MySQL数据库时遇到问题。我试图连接一个我正在制作的实际程序,但是开始尝试连接一个基本上空白的程序,该程序仅连接到数据库并打印那里的内容,因此至少我知道我的连接很好。我正在使用intellij和mysql工作台。我刚刚从笔记本电脑中删除了所有mysql内容,然后重新安装了它。我在那里遇到了问题,但是了解了如何正确删除并重新安装它。由于我的mysql连接器j,数据库无法连接是我非常没有道理的选择。我忘记下载了什么,因为已经很久了,但是我认为我刚下载的mysql是8.0.20版本,但是我的程序仅接受6.0.5。这是各种图像和代码片段。 [我更改了我的代码中的一件事,现在已连接!!!]]好,因此,在编写本文时,我更改了一些内容并已连接。看来我正在混用两个版本的连接器。

sample.fxml
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.BorderPane?>

<BorderPane fx:controller="sample.Controller" xmlns:fx="http://javafx.com/fxml">
  <center>
    <Button text="Test Database" onAction="#testDBConnection"/>
  </center>
</BorderPane>`

ConnectionUtil

package sample;
import java.sql.Connection;
import java.sql.DriverManager;

public class ConnectionUtil {

  public static Connection conDB(){
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/quizdb?useSSL=false", "root", "hockey");
        System.out.println("Connected");
        return con;
    } catch (Exception ex) {
        System.out.println("no connection");
        return null;
    }
  }

}

控制器

package sample;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Controller {

Connection con = ConnectionUtil.conDB();
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;

  public void testDBConnection(){
    String sql = "select * from question";

    try {
        preparedStatement = con.prepareStatement(sql);
        resultSet = preparedStatement.executeQuery();
        if(!resultSet.next()){
            System.out.println("End of questions");
        } else {
            int questionId = Integer.parseInt(resultSet.getObject("id").toString());
            String question = resultSet.getObject("question").toString();
            String correctAnswer = resultSet.getObject("correctAnswer").toString();
            System.out.println("Question# " + questionId + "\nQuestion: " + question + "\nCorrect Answer: " + correctAnswer);

        }
    } catch (SQLException throwables) {
        throwables.printStackTrace();
    }

  }

}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>kruzel.rob</groupId>
<artifactId>TestConnection</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.5</version>
    </dependency>

</dependencies>


</project>

这里是我的mysql数据库,项目结构,外部库等的图片。>

database instance

what the db tables look like

external libraries/project structure

所以我想我现在的问题是,为什么在pom.xml版本中需要6.0.5,但是我的外部库链接到8.0.20?它们最初链接到6.0.5,但我无法连接,因此我下载了8.0.20 jar和source.jar并添加了它们。我知道连接终于可以正常工作了,但想了解这里发生了什么。预先感谢您的帮助!

我在将javafx程序连接到MySQL数据库时遇到问题。我正在尝试连接我正在制作的实际程序,但是开始尝试连接的基本上是一个仅...

mysql javafx mysql-connector
1个回答
0
投票

如我的评论中所述,这是因为MySQL类名称已更改,旧类名称已被弃用。在这里阅读:MySQL Docs

© www.soinside.com 2019 - 2024. All rights reserved.