Java登录表单
向大家问好
我目前正在使用MVC为公文包制作Java餐厅项目。现在,我被困在登录表单上。我的问题是我忘记了如何在MySQL中以用户(管理员或客户)身份登录
在我的登录表单中,有用户名文本字段、密码字段、登录和退出按钮
没有用户类型,因为只有一个管理员。我不想和多个管理员打交道
数据库的名称为restaurant。现在,只有一个表:user。我手动插入了一些数据
登录成功后,视图将根据用户类型更改为Admin或User
这些是ControllerLogin和Database。我复制的数据库是从我同学的另一个项目粘贴的
public class ControllerLogin extends MouseAdapter implements ActionListener {
private ViewLogin view;
private Database db;
public ControllerLogin() {
view = new ViewLogin();
db = new Database();
view.addActionListener(this);
view.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source.equals(view.getBtnLogin())) {
btnLoginActionPerformed();
}
if (source.equals(view.getBtnExit())) {
btnExitActionPerformed();
}
}
public void btnLoginActionPerformed() {
}
public void btnExitActionPerformed() {
System.exit(0);
}
}
public class Database {
private Connection conn;
private Statement stmt;
private ResultSet rs;
public void connect() {
String url = "jdbc:mysql://localhost/restaurant";
String user = "root";
String pass = "";
try {
conn = DriverManager.getConnection(url, user, pass);
stmt = conn.createStatement();
} catch (SQLException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
}
编辑1:
我搜索了如何制作登录表单的视频,找到了一个。我试着在我的程序上编写它,但仍然错误地说“java.lang.NullPointerException”
public void btnLoginActionPerformed() {
db.connect();
String sql = "Select * from user where username=? and password=?";
try {
pst = conn.prepareStatement(sql);
pst.setString(1, view.getUsername());
pst.setString(2, view.getPassword());
rs = pst.executeQuery();
if (rs.next()) {
JOptionPane.showMessageDialog(null, "Welcome");
} else {
JOptionPane.showMessageDialog(null, "Invalid Username or Password", "Access Denied", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
# 1 楼答案
您可以使用下面的代码来实现这一点