为了账号安全,请及时绑定邮箱和手机立即绑定

将数据库连接到 GUI

将数据库连接到 GUI

守候你守候我 2024-01-05 14:46:01
我在让我的代码与 GUI 一起正常工作时遇到了一些困难。我创建了一个连接到数据库的简单登录程序,该程序在 GUI 中允许用户输入用户名和密码,然后提示数据库以查看用户名和密码是否存在。我创建了一个连接到数据库的类和一个执行 SQL 语句的 DAO 类。我还有两个类,其中一个是接口,另一个包含稍后未实现的方法。现在,我遇到的问题是将 GUI 连接到我的数据库,这应该通过 DAO 类来完成。我的 GUI 有两个文本字段,应该用来比较用户名和密码,但我不知道该怎么做。另外,我的 DAO 类并未完全实现它,因为它采用 int 作为参数。如果你能帮助我,我将不胜感激。UserDAO 类:public class UserDAO implements IDao<User> {    DemoDB DemoDBSingleton = null;    public UserDAO() {        DemoDBSingleton = DemoDB.getInstance();    }    @Override    public User get(int id) throws NoSuchElementException {        User user = null;        try {            ResultSet resultSet = DemoDBSingleton                    .excecuteQuery("SELECT user_name, password FROM users WHERE id=" + id);            if (!resultSet.next())                throw new NoSuchElementException("The user " + id + " doesn't exist in database");            else                DemoDBSingleton.close();        } catch (SQLException e) {            e.printStackTrace();        }        return user;    }}
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

也许如果你这样做


public class UserDAO implements IDao<User> {


    DemoDB DemoDBSingleton = null;


    public UserDAO() {

        DemoDBSingleton = DemoDB.getInstance();

    }


    @Override


    public boolean login(String userName, String password) throws NoSuchElementException {

        boolean login = false;

        try {

            ResultSet resultSet = DemoDBSingleton

                    .excecuteQuery("SELECT user_name, password FROM users WHERE user_name='" + userName + "' AND password = '" + password + "'");

            if (resultSet.next())

                login = true;

        } catch (SQLException e) {

            e.printStackTrace();

        }

        DemoDBSingleton.close();

        return login;

    }

}

并更正您的文本字段


JTextField txtUserName = new JTextField(10);

JPasswordField txtPassword = new JPasswordField(10);

和点击事件


private class ClickListener implements ActionListener {


    @Override

    public void actionPerformed(ActionEvent e) {

        UserDAO userDao = new UserDAO();


        if (userDao.login(txtUserName.getText(), txtPassword.getText())) {

            // here you redirect to your main window

        }

        else

            JOptionPane.showMessageDialog(null, "Incorrect user or password!!!");

    }


}


查看完整回答
反对 回复 2024-01-05
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信