Java 如何根据条件从mysql数据库中读取值?
我正在做一个Java项目,允许用户以管理员或用户身份登录,这取决于他们从帐户创建中选择的内容。通过检查数据库中是否存在这些值,我成功地编写了一个代码来检查他们的用户名和密码在我的应用程序登录页面中是否正确,但是,我希望用户以管理员或用户身份登录,但我不知道如何做到这一点。我在想,如果我能从他们在数据库中创建的帐户中读取他们选择作为用户或管理员的内容,请参阅下面数据库列的图片,那么我就能够基于此执行if语句。例如,ifusertype=='admin'{//then go to admin page}但usertype是数据库中的一列,我不知道如何读取。下面还有我的代码,它是一个在按下登录按钮时激活的函数。如果您知道解决方案,请告诉我,谢谢Java 如何根据条件从mysql数据库中读取值?,java,mysql,sql,swing,netbeans,Java,Mysql,Sql,Swing,Netbeans,我正在做一个Java项目,允许用户以管理员或用户身份登录,这取决于他们从帐户创建中选择的内容。通过检查数据库中是否存在这些值,我成功地编写了一个代码来检查他们的用户名和密码在我的应用程序登录页面中是否正确,但是,我希望用户以管理员或用户身份登录,但我不知道如何做到这一点。我在想,如果我能从他们在数据库中创建的帐户中读取他们选择作为用户或管理员的内容,请参阅下面数据库列的图片,那么我就能够基于此执行if语句。例如,ifusertype=='admin'{//then go to admin pag
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*,因此您应该能够通过以下方式访问java代码中的用户类型
if(rs.next()){
String userType = rs.getString("usertype");
if(userType.equals("admin")){
// your admin code here
}else{
// your user code here
}
}
您知道如何从数据库中读取数据-它已经在您的代码中:SELECT from。您不需要知道如何根据条件进行选择。您将读取usertype并将其作为变量存储在应用程序中,并将其作为条件使用。实际上,您需要做的是学习SQL。谷歌搜索一个教程并开始阅读,因为堆栈溢出不是学习基础知识的地方。嗨,我试过这段代码,但似乎else总是在运行。我尝试用一个有正确详细信息的管理员帐户登录,但它运行的是用户代码else。你知道如何解决这个问题吗?调试你的代码,确保你从数据库中得到你想要的数据。请使用equals方法比较两个字符串