java - Java 中使用 SQL 身份验证登录

标签 java

我正在尝试使用 Java 构建一个登录 UI。但是我的 SQL 身份验证有问题

代码如下:

    public void actionPerformed(ActionEvent e){
            if (e.getSource() == Login)

                    try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con=DriverManager.getConnection("jdbc:odbc:MessageStore","sa","12345"); 
                Statement cmd=con.createStatement(); 
                ResultSet rs=cmd.executeQuery("select * from UserList where UserName='"+nameText.getText());
    }

但是有一个带有“rs”的警告: 局部变量rs的值没有被使用

如何解决这个问题?

或者是否有更简单的代码来实现 SQL 身份验证?

谢谢

最佳答案

在大多数情况下,“变量 X 的值未被使用”,您可以选择忽略该消息或删除对其的赋值。在这些情况下,您无需对该值执行任何操作。

但是,在这种情况下,您仅对数据库执行查询,但不对结果执行任何操作。因此您不知道您尝试验证的用户是否确实是有效用户。

因此,您必须使用变量“rs”来检查是否确实有结果以及是否允许用户登录。

public void actionPerformed(ActionEvent e){
  if (e.getSource() == Login){
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // may not be needed since JDBC4
      Connection con=DriverManager.getConnection("jdbc:odbc:MessageStore","sa","12345"); 
      PrePareStatement cmd=con.prepareStatement("select * from UserList where username=?"); // safer, protect against 
      cmd.setString(1,nameText.getText());
      ResultSet rs=cmd.executeQuery();
      if( rs.next() ){
        // username does exist, now check the password
      }else{
        // username does not exist
      }
    }catch(Exception e){}
  }
}

关于java - Java 中使用 SQL 身份验证登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152242/

相关文章:

java - BufferedImage.getRGB 不返回数组

java - 以最少的内存使用遍历 Java 中的许多文件

java - 在IDEA中为特定字符串启用sql语法高亮

java - 未显示 Spring 验证错误

java - 为什么我的 public void Constructor {} 不能编译?

java - 如何限制使用Java服务的线程数

java - 较低 API 级别的 Android 安全性

java - 每次打开 Android 应用程序时显示 toast

java - 如何在 JTextArea 上添加 JScrollPane?

java - 如何使用 jdbctemplate 从 Java 执行匿名 PL/SQL