下面是我的登录用户界面代码。我正在尝试创建用户验证。我已经完成了我应该做的所有事情,但是在按下控制台中的“登录”按钮后我的代码没有显示任何内容。这段代码有什么问题?
import javax.swing.*; // For Frame
import java.awt.event.*; // For action Listener
import java.sql.*; // For Database
public class Login {
/* Three instance varaibles */
Connection con;
Statement st;
ResultSet rs;
JFrame f = new JFrame("User Login");
JLabel l = new JLabel("Username:");
JLabel l1 = new JLabel("Password:");
JTextField t = new JTextField(10);
JTextField t1 = new JTextField(10);
JButton b = new JButton("Login");
/* CONSTRUCTOR */
public Login() {
/* METHODS */
connect();
frame();
}
public void connect() {
try {
/* DECLARING DRIVER */
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);
String db = "jdbc:odbc:Database1";
/* THIS WILL GET A CONNECTION TO OUR DATABASE */
con = DriverManager.getConnection(db);
st = con.createStatement();
} catch (Exception ex) {
}
}
public void frame() {
f.setSize(600, 400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
JPanel p = new JPanel();
p.add(l);
p.add(t);
p.add(l1);
p.add(t1);
p.add(b);
f.add(p);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String user = t.getText().trim();
String pass = t1.getText().trim();
String sql = "select user,pass from Table2 where user='"
+ user + "'and pass='" + pass + "'";
rs = st.executeQuery(sql);
int count = 0;
while (rs.next()) {
count = count + 1;
}
if (count == 1) {
JOptionPane.showMessageDialog(null,
"User found, Access granted! ");
} else if (count > 1) {
JOptionPane.showMessageDialog(null,
"Duplicate user, Access denied! ");
} else {
JOptionPane.showMessageDialog(null,
"User not found! ");
}
} catch (Exception ex) {
}
}
});
}
public static void main(String[] args) {
new Login();
}
}
最佳答案
- 在
Class.forName()
后添加System.out.println("Driver Loaded")
以查看驱动程序是否已加载 - 在连接代码后添加
System.out.printlnt("Connected to Database")
,查看是否已连接 - 将
ex.printStackTrace()
放入所有空的 catch block 中,以便您可以看到错误发生的位置。 - 我在测试时忘记添加 MySql jar,因此出现了
ClassNotFoundException
。确保您的 jar 包含在项目中。添加 jar 后,代码就可以工作了。不过,我确实将数据库切换到了 MySql,因为那是我使用的数据库
添加到第 3 点。如果您收到 ClassNotFoundException
,您可能需要将驱动程序 jar 添加到您的库中。如果您收到SQLException
,则可能是您的连接语法或查询语法有问题。除此之外,我不知道还会在哪里发生异常,因为我自己运行了它。
关于java - 在用户验证中按下登录按钮后,我的代码不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20759270/