Проблема сохранения элементов в базе данных из intelliJ - PullRequest
0 голосов
/ 09 апреля 2020

Хорошо, поэтому я делаю приложение GUI, которое должно взять информацию от пользователя и сохранить ее в базе данных sql. Это происходит, когда я нажимаю кнопку регистрации на GUI, но по какой-то причине все работает нормально, но данные не отображаются в базе данных. Вот проблема:

Файл подключения к моей базе данных:

package com.Ashmal;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/genius",
            "root", "$Can$123");
    System.out.println("Connected to DataBase");
}
}

Вот мой класс Configs:

package DBConnection;

public class Configs {

protected static String dbhost = "localhost";
protected static String dbport = "3306";
protected static String dbuser = "root";
protected static String dbpass = "$Can$123";
protected static String dbname = "genius";
}

Вот мой класс обработчика базы данных:

package DBConnection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBHandler extends Configs{

Connection dbconnection;
public Connection getConnection() {
    String connectionString = "jdbc:mysql://" + Configs.dbhost + ":" + Configs.dbport + "/"
            + dbname + "?autoReconnect=true&useSSL=false";
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    try {
        dbconnection = DriverManager.getConnection(connectionString, Configs.dbuser, dbpass);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return dbconnection;
}
}

Вот мой класс контроллера регистрации:

package sample;

import javafx.animation.PauseTransition;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.util.Duration;
import DBConnection.DBHandler;

import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class SignUpController {

@FXML
private AnchorPane parentPane;
@FXML
private Button login;
@FXML
private TextField name;
@FXML
private Button signUp;
@FXML
private RadioButton male;
@FXML
private ToggleGroup gender;
@FXML
private RadioButton female;
@FXML
private RadioButton other;
@FXML
private TextField locationField;
@FXML
private ImageView progress;
@FXML
private PasswordField password;
private Connection connection;
private DBHandler handler;
private PreparedStatement pst;

public void initialize() {
    progress.setVisible(false);
    handler = new DBHandler();
}

@FXML
public void signUP() {
    progress.setVisible(true);
    PauseTransition pt = new PauseTransition();
    pt.setDuration(Duration.seconds(3));
    pt.setOnFinished(e -> System.out.println("Sign Up Successful!"));
    pt.play();

    // Saving Data
    String insert = "INSERT INTO youtubers(names,password,gender,locationField)"
            + "VALUES (?,?,?,?)";
    connection = handler.getConnection();
    try {
        pst = connection.prepareStatement(insert);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    try {
        pst.setString(1, name.getText());
        pst.setString(2, password.getText());
        pst.setString(3, getGender());
        pst.setString(4, locationField.getText());
        pst.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public String getGender() {
    String gen = "";
    if (male.isSelected()) {
        gen = "Male";
    } else if (female.isSelected()) {
        gen = "Female";
    } else if (other.isSelected()) {
        gen = "Other";
    }
    return gen;
}
}

Вот информация о модуле на всякий случай:

module GaveUp {

requires javafx.fxml;
requires javafx.controls;
requires jlfgr;
requires java.sql;
requires mysql.connector.java;
opens sample;
opens img;
opens DBConnection;

}
...