如何在Java中使用MySQL登录后访问特定用户的信息

时间:2016-05-04 10:39:12

标签: java mysql javafx login user-profile

我在PHP中看到了很多关于此的解释。我想在Java中使用JavaFX来支持我的GUI。我将包括我的登录方法和在扩展坞上显示用户名。

因此,假设我的数据库和用户login_id = 5日志中有10个用户,这意味着我想在某些地方获取有关他的所有信息(即名字,姓氏,e-邮件等。)。

LoginFXMLController

@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();
        }
    }

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

1 个答案:

答案 0 :(得分:0)

不知道哪个类对象“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);

  }
}