如何从特定行和列的 JAVA 程序中从数据库中获取值?
How to get value from database in JAVA program from a specific row and column?
我正在制作一个 JAVA 程序,我在其中将一些值放入具有 table new_table 的数据库中。它包含以下列:用户名、密码和名称。
我正在通过控制台获取用户输入的用户名和密码,并检查它是否与 table 中的一行相匹配。
Statement st=Myconn.createStatement();
ResultSet rs=st.executeQuery("select * from new_table");
String getusnm=rs.getString("username")
String get pswd=rs.getString("password");
接下来,如果用户名和密码匹配,我想显示 table 中的用户名。那么,如何使用与字符串相同的结果集来获取用户的姓名?
我用过:
String getname=rs.getString("name","where usnm = user"); // user is the String inputted from the console
不过好像不行。
请帮我解决这个问题。
谢谢。
您应该在 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");
}
请注意,通常在数据库中存储明文密码是一种不好的做法table。更典型的是,您会在输入密码之前对其进行哈希处理。然后,为了验证传入的用户密码,您还要对其进行哈希处理,然后比较两个哈希值。
我正在制作一个 JAVA 程序,我在其中将一些值放入具有 table new_table 的数据库中。它包含以下列:用户名、密码和名称。
我正在通过控制台获取用户输入的用户名和密码,并检查它是否与 table 中的一行相匹配。
Statement st=Myconn.createStatement();
ResultSet rs=st.executeQuery("select * from new_table");
String getusnm=rs.getString("username")
String get pswd=rs.getString("password");
接下来,如果用户名和密码匹配,我想显示 table 中的用户名。那么,如何使用与字符串相同的结果集来获取用户的姓名?
我用过:
String getname=rs.getString("name","where usnm = user"); // user is the String inputted from the console
不过好像不行。
请帮我解决这个问题。
谢谢。
您应该在 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");
}
请注意,通常在数据库中存储明文密码是一种不好的做法table。更典型的是,您会在输入密码之前对其进行哈希处理。然后,为了验证传入的用户密码,您还要对其进行哈希处理,然后比较两个哈希值。