我正在为我的学校商店制作一个程序,希望得到你们这些聪明人的帮助。
我浏览了工作台上的 SQL 教程,还查找了一些有关如何实现我想要实现的目标的视频,但是,目前我对 SQL 很糟糕。我有一段代码,如果你们中一位更熟悉 SQL 的人能够帮助我解决这些错误,那就太好了。
class loginButton implements ActionListener{
public void actionPerformed(ActionEvent e) {
Connection connection;
PreparedStatement ps;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/userlist", "root", "Hadasada3!");
ps = connection.prepareStatement("SELECT `username`, `password` FROM `userlist` WHERE `username` = ? AND `password` = ?");
ps.setString(1, textUsername.getText());
ps.setString(2, String.valueOf(textPassword.getPassword()));
ResultSet result = ps.executeQuery();
if(result.next()){
JOptionPane.showMessageDialog(null, "Login Success.");
String[] args = null;
CowboyCorral.main(args);
dispose();
}
else{
JOptionPane.showMessageDialog(null, "Login Failed.");
}
} catch (SQLException ex) {
Logger.getLogger(CCLogin.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
buttonLogin.addActionListener(new loginButton());
我正在使用 Eclipse,以及工作台中修改后的示例代码。我有 SQL 工作台在端口 3306
上的 localhost
上运行数据库,架构和表称为 userlist
。当此代码为文本时,它显示没有错误。当我运行程序并按下登录按钮时,它显示 No合适的驱动程序找到 jdbc:mysql://localhost:3306/userlist
。如果需要,我可以提供额外的错误信息,但如果有人可以指出我正确的方向,或者甚至告诉我我的错误在哪里,那将不胜感激。
我在项目的引用库中还有mysql-connector-java-5.1.38-bin.jar
。
最佳答案
失踪
Class.forName("com.mysql.jdbc.Driver");
创建连接之前。还可以考虑将部分代码放入“服务”类,而不是 ActionListener 中的所有内容,创建连接并从数据库获取用户数据可以由程序中的其他类使用,并且您将重复代码,这是不好的做法。
关于使用SQL的Java登录程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36696910/