JavaFX controller class that fetches the username and password from a MySQL database named “biharigraphic” and a table named “users” using JDBC:
import java.sql.*; import javafx.fxml.FXML; import javafx.scene.control.*; public class LoginController { @FXML private TextField usernameField; @FXML private PasswordField passwordField; @FXML private Label messageLabel; // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/biharigraphic"; // Database credentials static final String USER = "root"; static final String PASS = "password"; public void login() { String username = usernameField.getText(); String password = passwordField.getText(); Connection conn = null; Statement stmt = null; try { // Register JDBC driver Class.forName(JDBC_DRIVER); // Open a connection conn = DriverManager.getConnection(DB_URL, USER, PASS); // Execute a query stmt = conn.createStatement(); String sql = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "'"; ResultSet rs = stmt.executeQuery(sql); // Check if the username and password are correct if (rs.next()) { messageLabel.setText("Login successful!"); } else { messageLabel.setText("Invalid username or password."); } // Clean-up environment rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { // Handle errors for JDBC se.printStackTrace(); messageLabel.setText("Database error."); } catch (Exception e) { // Handle errors for Class.forName e.printStackTrace(); messageLabel.setText("Unexpected error."); } finally { // Close resources try { if (stmt != null) stmt.close(); } catch (SQLException se2) { // Ignore } try { if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } } }
In this example, the login() method is called when the user clicks a login button in the UI. The method first gets the username and password entered by the user in the text fields. It then uses JDBC to connect to the MySQL database and execute a SELECT query to check if the username and password are correct. If the query returns a row, the login is successful; otherwise, an error message is displayed.
Note that you will need to replace the database URL, username, and password with your own values, and also make sure that you have the MySQL JDBC driver JAR file on your classpath.