Java Netbeans Login Form



我是java的初学者。出于学术目的,我必须开发一个系统。在登录表单的系统中,我必须涵盖三个字段:用户名,密码和使用jcombobox选择用户级别。就我对我的项目所做的工作而言,我可以使用数据库的任何用户名,密码登录,并将我的jcombobox与数据库链接。但是我想通过提供存储在数据库中的特定用户名和密码并从jcombobox中选择特定的登录级别(例如以管理员/经理/工程师身份登录(来登录。只有该特定人员可以使用用户名,密码和级别登录。另一个级别的其他人必须提供他们所需的用户名,密码,级别。这是我的代码,

import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.sql.*;
import javax.swing.*;
public class LogInJFrame extends javax.swing.JFrame {
Connection conn=null;
ResultSet rs = null;
PreparedStatement pst=null;
public LogInJFrame() {
    initComponents();
    conn=JavaConnector.ConnectorDb();
    Fill_Combo();
}
private void Fill_Combo()
{
    try
    {
        String sql="Select * from Level";
        pst=conn.prepareStatement(sql);
        rs=pst.executeQuery();
        while(rs.next()){
        String type=rs.getString("Type");
        cmb_loginAs.addItem(type);
        }
    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(null, e);
    }
    finally
    {
        try
        {
            rs.close();
            pst.close();
        }
        catch(Exception e)
        {
        }
    }
} 
private void btn_loginActionPerformed(java.awt.event.ActionEvent evt) {                                          
    String sql="select * from Level where UserName =? and Password =?  ";
try{
pst =conn.prepareStatement(sql);
pst.setString(1, txt_username.getText());
pst.setString(2, txt_password.getText());
rs=pst.executeQuery();
if(rs.next())
{
    JOptionPane.showMessageDialog(null, "The Username and Password is correct");
    rs.close();
    pst.close();
    AdministratorLogin ad=new AdministratorLogin();
    ad.setVisible(true);
}
else
{
    JOptionPane.showMessageDialog(null, "The Username and Password is not correct");
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
finally
    {
        try
        {
            rs.close();
            pst.close();
        }
        catch(Exception e)
        {
        }
    }
}                                         
private void txt_passwordKeyPressed(java.awt.event.KeyEvent evt) {                                        
    if(evt.getKeyCode()==KeyEvent.VK_ENTER)
    {
        String sql="select * from Level where UserName =? and Password =?  ";
try{
pst =conn.prepareStatement(sql);
pst.setString(1, txt_username.getText());
pst.setString(2, txt_password.getText());
rs=pst.executeQuery();
if(rs.next())
{
    JOptionPane.showMessageDialog(null, "The Username and Password is correct");
    rs.close();
    pst.close();
    AdministratorLogin ad=new AdministratorLogin();
    ad.setVisible(true);
}
else
{
    JOptionPane.showMessageDialog(null, "The Username and Password is not correct");
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
finally
    {
        try
        {
            rs.close();
            pst.close();
        }
        catch(Exception e)
        {
        }
    }
    }
}                                                         
}

我已经尝试了很多,但无法确切地弄清楚我需要做什么才能获得我想要的结果。有人会帮我吗?谢谢。

您始终可以将用户名和密码链接到数据库内的帐户类型。然后将其从数据库存储中取出,将其存储在字符串中。然后做类似的事情

if(accountType.equals("engineer")) {
     // load specific page
}

最新更新