java - Java中如何从MySQL登录后获取特定用户的信息

标签 java mysql javafx authentication user-profile

我已经看过很多关于这个的解释,但是都是 PHP 的。我想在 Java 中使用 JavaFX 来支持我的 GUI 来完成此操作。我将包含登录方法和在扩展坞上显示用户名的方法。

假设我的数据库中有 10 个用户,并且用户 login_id = 5 日志,这意味着我想在某些位置获取有关他的所有信息(即名字、姓氏、电子邮件等)。

登录FXMLController

@FXML
    private boolean loginSuccessful() throws SQLException{
        connection = MySQL.Connect();
        String sql = "SELECT * FROM login WHERE username = ? and password = ?";

        pst = connection.prepareStatement(sql);
        pst.setString(1, tfUsername.getText());
        pst.setString(2, tfPassword.getText());
        rs = pst.executeQuery();

        return (rs.next());
    }

DockFXMLController

@FXML
    public void showName()
    {
        try {
// Just getting info from login_id column, and not by specific user,
// and I'd like to change that
            String sql = "SELECT * FROM Login WHERE login_id = 1";
            pst = connection.prepareStatement(sql);
            rs = pst.executeQuery();
            if(rs.next())
            {
                lblName.setText(rs.getString("first_name") + " " + rs.getString("last_name"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

上面的代码可以工作并显示它应该显示的内容 - 第一行的名字,所以我已经正确初始化了我需要的所有内容。

最佳答案

不知道“pst”实际上是哪个类对象。 这是 java tutorial about database on java2s.com 的快照.

我认为问题是你应该调用方法createStatement()。

希望这对您有帮助。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class Main {
  public static void main(String[] argv) throws Exception {
    String driverName = "com.jnetdirect.jsql.JSQLDriver";
    Class.forName(driverName);

    String serverName = "127.0.0.1";
    String portNumber = "1433";
    String mydatabase = serverName + ":" + portNumber;
    String url = "jdbc:JSQLConnect://" + mydatabase;
    String username = "username";
    String password = "password";

    Connection connection = DriverManager.getConnection(url, username, password);
    Statement stmt = connection.createStatement();
    String sql = "UPDATE my_table SET col_string='a new string' WHERE col_string = 'a string'";
    int updateCount = stmt.executeUpdate(sql);

  }
}

关于java - Java中如何从MySQL登录后获取特定用户的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37025361/

相关文章:

java - 如何使用 Jackson 为具有可选字段的类反序列化 json

mysql - 如何选择同一列中出现的相同 ID 值?

mysql - 从面包屑重新创建目录

java - 创建 BigDecimal 列表的对象绑定(bind)以获取总计

maven - 为什么 Bitbucket 无法构建我的 JFX 项目?

JavaFX 按钮不会禁用

java - 在 Java 中用字符串替换 XML 文档中的元素

java - java中一个类的对象在2个不同的JVM上的序列化

java - 播放应用程序中的 ActorSystem 费用

MySQL不可修改的列?