【问题标题】:How can I retrieve userID (INT) depending on username (VARCHAR) from mySQL in JAVA program?如何根据 JAVA 程序中的 mySQL 中的用户名(VARCHAR)检索用户 ID(INT)?
【发布时间】:2021-09-21 22:05:03
【问题描述】:

所以,我正在使用 JAVAmySQL 制作登录系统。 我想根据 username(字符串数据类型)检索 userID(int 数据类型)的值。

谁能告诉我如何解决这个问题,谢谢。

这是我的表(logindb)结构:

  1. 用户名 -- VARCHAR(20)
  2. 名字 -- VARCHAR(20)
  3. 姓氏 -- VARCHAR(20)
  4. 用户 ID -- INT(5)
public class LoginFrame extends javax.swing.JFrame {
       
       String username;
       Connection connectDB = null;
       PreparedStatement statementDB = null;

private void buttonLoginActionPerformed(java.awt.event.ActionEvent evt) {                                                          
        // TODO add your handling code here:      
        
            try{
                connectDB = DriverManager.getConnection("jdbc:mysql://localhost/fyploginsystemdb", "root", "");
                String query = "SELECT `userID` FROM `logindb` WHERE username ='"+username+"'";               
                statementDB = connectDB.prepareStatement(query);
                

            }catch(Exception ex){
                //stuff 
                }
           
        }       
    } 
}

【问题讨论】:

    标签: java mysql sql jdbc


    【解决方案1】:

    你需要阅读一些教程,下面的代码块可以作为你的参考,需要注意两点:

    1. 使用PreparedStatement来避免sql injection,此时需要通过?传递参数
    2. 如果您的 jdk 高于 jdk6,则使用 try-with-resource 以确保它们可以自动关闭
    public class LoginFrame extends javax.swing.JFrame {
    
        String username;
    
        private void buttonLoginActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
    
            String query = "SELECT `userID` FROM `logindb` WHERE username = ? ";
            try (Connection connectDB = DriverManager.getConnection("jdbc:mysql://localhost/fyploginsystemdb", "root", "");
                 PreparedStatement statementDB = connectDB.prepareStatement(query);) {
    
                statementDB.setString(1, username);
                try (ResultSet resultSet = statementDB.executeQuery()) {
                    while (resultSet.next()) {
                        System.out.println(resultSet.getInt("userID"));
                    }
                }
            } catch (Exception ex) {
                //stuff
            }
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-01-06
      • 2013-12-11
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多