如何从特定行和列从JAVA程序的数据库中获取价值?

问题描述 投票:-1回答:1

我正在制作一个JAVA程序,其中已使用表new_table在数据库中放置了一些值。它具有以下列:用户名,密码和名称。

我正在通过控制台从用户那里输入用户名和密码,并检查它是否与表中的行匹配。

Statement st=Myconn.createStatement();

ResultSet rs=st.executeQuery("select * from new_table");

String getusnm=rs.getString("username")

String get pswd=rs.getString("password");

接下来是,如果用户名和密码匹配,我想从表中显示用户名。因此,如何使用与String相同的结果集获取用户名?

我使用过:

String getname=rs.getString("name","where usnm = user"); // user is the String inputted from the console

但是它似乎不起作用。

请帮助我。

谢谢。

java mysql jdbc resultset
1个回答
0
投票

您应该在SQL查询中使用WHERE子句,该子句受用户名和密码的限制:

String sql = "SELECT * FROM new_table WHERE usnm = ? AND pass = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, username);
st.setString(2, password);
ResultSet rs = st.executeQuery();
if (rs.next()) {
    String username = re.getString("usnm");
}

注意,通常,将明文密码存储在数据库表中是一种不好的做法。通常,您将在插入输入密码之前对输入的密码进行哈希处理。然后,要验证输入的用户密码,您还可以对其进行哈希处理,然后比较两个哈希。

© www.soinside.com 2019 - 2024. All rights reserved.