java - 如何在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("");
}
}
这就是我此刻已经拥有的
解决方案
回应@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();
}
}
}```
推荐阅读
- flutter - 我正在运行命令“flutter doctor --android-licenses”,但出现以下错误
- google-app-engine - 如何让 GCP 中的 Flask 应用程序访问外部网络?
- matlab - matlab h5writeatt如何保留原文件中属性的顺序?
- c# - 如何在 azure 函数中读取 C# startup.cs 类中的 azure 应用程序配置值
- docker - Gitlab在docker镜像中运行阶段
- javascript - 不是从IOS、Android移动到form.action=result path?
- c - 无法调试我的简单 C 程序以获取 y/n 输入
- sed - 根据第一个字符选择记录
- django - Django在自定义中间件中计算变量值并传递给所有视图函数
- go - 为什么golang在编译wasm目标时将符号数限制为65535?