【问题标题】:setting variables against data retrieved from a database针对从数据库检索的数据设置变量
【发布时间】:2013-12-05 13:57:41
【问题描述】:

我正在使用 java (eclipse) 构建一个简单的安全系统,并且我正在使用 MYSQL 语句从数据库中提取数据

  ResultSet rs = statement.executeQuery("select name, username, password from securitysystem.employee where username = '" + username + "' and password = '" + password + "'");

但是如果我想创建一个变量user=name,我该怎么做呢? name 是指使用上述语句检索到的名称。

【问题讨论】:

    标签: java mysql jdbc database-connection


    【解决方案1】:

    首先,您不应该将您的参数直接放入查询字符串中。 而是这样做:

    PreparedStatement ps = connection.prepareStatement("select name, username, password "+
      "from securitysystem.employee where username = ? and password = ?");
    ps.setString(1, username);
    ps.setString(2, password);
    
    ResultSet rs = ps.executeQuery();
    

    要获得结果,请执行以下操作:

    if (rs.next()) {                  //move to 1st result row
      String name = rs.getString(1);  //first result column
      String user = rs.getString(2);  //second result column
      //  ..etc
    }
    

    【讨论】:

    • 当然你的意思是while而不是if,除非你只想要第一行;)
    • 我假设该语句仅设计为返回一行,因为它需要用户名和密码。
    • 是的,它只返回 1 行,因为它必须匹配用户名和密码 :) 感谢这个答案是完美的!
    【解决方案2】:

    怎么样:

    while(rs.next()) {
        String user = rs.getString("name");
    }
    

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 2018-12-18
      • 2011-02-01
      • 2017-06-19
      相关资源
      最近更新 更多