Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 遍历结果集_Java_Jdbc - Fatal编程技术网

Java 遍历结果集

Java 遍历结果集,java,jdbc,Java,Jdbc,可能重复: 坦率地说,这个问题问起来可能很傻,但我是Java的新手。 这是我的表名、id、地址、日期 现在我将匹配某个员工的相应密码 任何输入都将受到高度赞赏。您正在为所有员工选择数据,并在其中查找匹配项 最好让数据库对其进行筛选: select count(*) from regid where emp_id = ? and password = ? 然后您只需要检查它是否返回0或1 此外,密码希望只是一个密码散列。使用密码散列创建查询。因此,PreparedStatement的参数化查

可能重复:

坦率地说,这个问题问起来可能很傻,但我是Java的新手。 这是我的表名、id、地址、日期

现在我将匹配某个员工的相应密码


任何输入都将受到高度赞赏。

您正在为所有员工选择数据,并在其中查找匹配项

最好让数据库对其进行筛选:

select count(*)  from regid where emp_id = ? and password = ?
然后您只需要检查它是否返回0或1

此外,密码希望只是一个密码散列。

使用密码散列创建查询。因此,PreparedStatement的参数化查询如下:

SELECT * from regid WHERE emp_id = ? AND password = ?
PreparedStatement ps = null;
ResultSet rs = null;
boolean validUser = false;

try{
    ps = connection.prepareStatement("SELECT * from regid WHERE emp_id = ? AND password = ?");
    ps.setString(1, [user_id_input]);
    ps.setString(2, [user_pw_input]);
    rs = ps.executeQuery();

    validUser = rs.next();
}finally{
    //Release your resources
}

if(validUser){
    //user is validated
}
插入参数值并执行语句。所以应该是这样的:

SELECT * from regid WHERE emp_id = ? AND password = ?
PreparedStatement ps = null;
ResultSet rs = null;
boolean validUser = false;

try{
    ps = connection.prepareStatement("SELECT * from regid WHERE emp_id = ? AND password = ?");
    ps.setString(1, [user_id_input]);
    ps.setString(2, [user_pw_input]);
    rs = ps.executeQuery();

    validUser = rs.next();
}finally{
    //Release your resources
}

if(validUser){
    //user is validated
}
作为补充说明,我还建议在将用户的输入输入输入到查询之前验证用户的输入。

使用选择的emp\u id、密码等查询数据库,。。。来自regid,其中emp_id=?密码=


创建PreparedStatement并设置emp_id和密码。如果emp_id和密码匹配,它将返回1行

您实际上不应该在结果集中匹配密码。您的sql查询应该类似于

select emp_id from regid where password='userpassword'

其中userpassword是您从屏幕上获得的密码,您使用

从数据库获取所有数据会降低应用程序的性能,因此激发以下查询检索一条记录

boolean status = false;
String emp_name = "";
String emp_password = "";
String sql = "select * from regid where emp_id='"+emp_id+"' AND password='"+password+"'";
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
    if(emp_id.equals(rs.getString("emp_id")) && password.equals(rs.getString("password")))
    {
            // fetch employee data
            status = true;
    }
}
if(status)
{
        // login correct
}
else
{
        // login incorrect
}

你有基本的想法。您的确切问题是什么?如果找到有效结果,您需要有人指导您怎么做?//获取所有数据。。。。在术语代码中应该有什么?将有其他员工数据,如部门名称,因此检索rs.getStringdepartment\u名称;在代码方面……如何匹配emp_id和密码,//您能……:可以通过编写代码给客户一个公平的想法…://释放您的资源-这意味着什么…在代码方面?这意味着您应该关闭您的结果集和您的PreparedStatement:if rs!=空rs.close;如果ps=nullps.close;