【发布时间】:2020-11-26 22:28:09
【问题描述】:
我正在做一个 Java 项目,以允许用户根据他们从创建帐户中选择的内容以管理员或用户身份登录。我设法通过检查数据库中是否存在这些值来检查他们的用户名和密码在我的应用程序登录页面中是否正确,但是,我希望用户以管理员或用户身份登录,但我没有不知道该怎么做。我想如果我可以从他们在数据库中创建的帐户中读取他们选择的内容(用户或管理员)(请参阅下面的数据库列图片),那么我可以基于此执行 if 语句。例如 if(usertype == 'admin'){ // then go to admin page} 但是 usertype 是数据库中的一列,我不知道如何阅读。我下面还有我的代码,它是激活的函数每当按下登录按钮时。如果您知道解决方案,请告诉我,谢谢。
private void LoginButtonActionPerformed(java.awt.event.ActionEvent evt) {
Connection con;
PreparedStatement pst;
ResultSet rs;
try{
String query = "SELECT * FROM `accounts` WHERE username=? and password=?"; // and usertype=?
con = DriverManager.getConnection("jdbc:mysql://localhost/restock", "root", "password");
pst = con.prepareStatement(query);
pst.setString(1, txtUsername.getText());
pst.setString(2, txtPassword.getText());
rs = pst.executeQuery();
if(rs.next()){
JOptionPane.showMessageDialog(this, "Login is successful as admin");
mainpage admin = new mainpage();
admin.setVisible(true);
dispose();
}
else{
JOptionPane.showMessageDialog(this, "Incorrect username or password");
/*usermainpage user = new usermainpage();
user.setVisible(true);
dispose();*/
}
} catch(Exception ex){
JOptionPane.showMessageDialog(this, ex.getMessage());
}
}
【问题讨论】:
-
您知道如何从数据库中读取数据——它已经在您的代码中:
SELECT <criteria> FROM <table>。您不需要知道如何根据条件进行选择。您将阅读usertype并将其作为变量存储在您的应用程序中,并将其用作条件there。你真正需要做的是学习SQL。谷歌上一个教程并开始阅读,因为 Stack Overflow 不是学习基础知识的地方。
标签: java mysql sql swing netbeans