繁体   English   中英

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

[英]How to get value from database in JAVA program from a specific row and column?

我正在制作一个 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 getname=rs.getString("name","where usnm = user"); // user is the String inputted from the console

但它似乎不起作用。

请帮我解决这个问题。

谢谢。

您应该在 SQL 查询中使用WHERE子句,该子句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");
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM