首页 > 解决方案 > 如何在intellij idea中使用数据库进行登录

问题描述

所以我对 intellij 想法中的 javafx 非常陌生,我在数据库部分连接了 mySQl 数据库时遇到问题,但现在我找不到任何地方如何从我的数据库中选择所有内容而无需使用连接字符串(因为我已经连接数据库了)

我已经尝试了几件事,比如只留下连接字符串,但这不起作用,我已经搜索了很长时间,但在任何地方都找不到,我希望有人能帮我解决这个问题。

package sample;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

import java.io.IOException;
import java.sql.*;

public class logincontroller extends Application {


    public TextField txtusername;
    public PasswordField txtpassword;
    public Label labeltxt;
    public Button btnLogin;
    String username, password;
    Scene scene1;


    public static void main(String[] args) {
        launch(args);
    }


    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("Login.fxml"));
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }


    public void Login(ActionEvent actionEvent) throws IOException, SQLException {
        username = txtusername.getText();
        password = txtpassword.getText();

        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        String sql;

        sql = "SELECT * FROM users WHERE Inlognaam = 1 AND Wachtwoord = 2";
        preparedStatement.setString(1, username);
        preparedStatement.setString(2, password);
        resultSet = preparedStatement.executeQuery(sql);

        if (!resultSet.next()) {
            labeltxt.setText("Login Failed");
        } else {
            Parent root1 = FXMLLoader.load(getClass().getResource("Menu.fxml"));
            Stage secondarystage = new Stage();
            secondarystage.setScene(new Scene(root1));
            secondarystage.show();
            Stage stage = (Stage) btnLogin.getScene().getWindow();
            stage.close();
        }
        txtusername.setText("");
        txtpassword.setText("");
    }

}

这就是我此刻已经拥有的

标签: javaintellij-ideajavafx

解决方案


回应@GhostCat 这应该可以帮助您入门。但是,请确保在使用 Connection 后将其关闭。与 PreparedStatments 相同,如果您不使用它们,请始终关闭它们。

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

public class Connector {
    public Connection con;
    private final String URL = "jdbc:mysql://localhost:3306/dbname";
    private final String USERNAME = "username";
    private final String PASSWORD = "password";

    /*
     * Adds DB Connection
     */
    public void add() {
        try {
                con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (SQLException se) {
            se.printStackTrace();
        }
    }
}```

推荐阅读