如何根据条件从 mysql 数据库中读取值?
How to read value from mysql database based on condition?
我正在做一个 Java 项目,允许用户根据他们在创建帐户时选择的内容以管理员或用户身份登录。我设法通过检查数据库中是否存在这些值来检查他们的用户名和密码在我的应用程序登录页面中是否正确,但是,我希望用户以管理员或用户身份登录,但我不不知道该怎么做。我在想,如果我可以从他们在数据库中创建的帐户中读取他们选择的内容(用户或管理员)(请参阅下面的数据库列图片),那么我就可以基于此执行 if 语句。例如 if(usertype == 'admin'){ // then go to admin page} 但 usertype 是数据库中的一列,我不知道如何 read.I 下面还有我的代码是在登录按钮为 pressed.If 时激活的功能,如果您知道解决方案,请告诉我,谢谢。
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
}
}
我正在做一个 Java 项目,允许用户根据他们在创建帐户时选择的内容以管理员或用户身份登录。我设法通过检查数据库中是否存在这些值来检查他们的用户名和密码在我的应用程序登录页面中是否正确,但是,我希望用户以管理员或用户身份登录,但我不不知道该怎么做。我在想,如果我可以从他们在数据库中创建的帐户中读取他们选择的内容(用户或管理员)(请参阅下面的数据库列图片),那么我就可以基于此执行 if 语句。例如 if(usertype == 'admin'){ // then go to admin page} 但 usertype 是数据库中的一列,我不知道如何 read.I 下面还有我的代码是在登录按钮为 pressed.If 时激活的功能,如果您知道解决方案,请告诉我,谢谢。
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
}
}