Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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 h:dataTable无法显示不同的行。它显示的是相同的行,甚至是传递给它的值列表_Java_Sql_Jsf 2_Datatable_Xhtml - Fatal编程技术网

Java h:dataTable无法显示不同的行。它显示的是相同的行,甚至是传递给它的值列表

Java h:dataTable无法显示不同的行。它显示的是相同的行,甚至是传递给它的值列表,java,sql,jsf-2,datatable,xhtml,Java,Sql,Jsf 2,Datatable,Xhtml,我有一个从数据库中提取数据的数据表。当我必须提取一行数据时,我的方法工作得很好。但是当我有很多行时,我的方法就不起作用了。它一次又一次地打印相同的行 以下是我的IssuanceBean.java代码: EmployeeDutySchedule只是充当某些字符串(如emp ID、first_name、last_name等)的getter和setter的中介 My Taskservices.java是执行查询的java文件,方法如下: public List<EmployeeDutyS

我有一个从数据库中提取数据的数据表。当我必须提取一行数据时,我的方法工作得很好。但是当我有很多行时,我的方法就不起作用了。它一次又一次地打印相同的行

以下是我的IssuanceBean.java代码:

EmployeeDutySchedule只是充当某些字符串(如emp ID、first_name、last_name等)的getter和setter的中介

My Taskservices.java是执行查询的java文件,方法如下:

    public List<EmployeeDutySchedule> IssuanceTask()
{
     List<EmployeeDutySchedule> empDutyList=new ArrayList<EmployeeDutySchedule>();
    EmployeeDutySchedule empDuty=new EmployeeDutySchedule();
   ResultSet rs=null;
   String query="Select employee_duty_schedule.emp_id, first_name, last_name,  emp_designation, description, task_allocated_id \n" +
 "From\n" +
 " transport_department_schema.employee_duty_schedule, \n" +
"transport_department_schema.m_subtasks, transport_department_schema.employees_information  WHERE\n" +
" employees_information.emp_id=employee_duty_schedule.emp_id AND\n" +
"employee_duty_schedule.task_allocated_id=m_subtasks.subtask_id\n" +
"AND employee_duty_schedule.task_allocated_id LIKE 'L001%'; ";
    System.out.println(query);
      rs=MyQueryExe.executeQuery(query);


            System.out.println("rs "+rs);
            try
        {
        while(rs.next())
        {
         empDuty.setEmpID(rs.getString("emp_id"));
         empDuty.setFirstName(rs.getString("first_name"));
         empDuty.setLastName(rs.getString("last_name"));
         empDuty.setSubTaskID(rs.getString("emp_id"));
         empDuty.setTaskDescription(rs.getString("emp_id"));
         empDuty.setDesignation(rs.getString("emp_designation"));

         empDutyList.add(empDuty);
            System.out.println("size of list  "+empDutyList.size());

        }
        }
        catch(SQLException e)
        {
            e.getStackTrace();
        }
        return empDutyList;
 }
我已经检查了数据库上的查询,它运行得很好

现在,我的xhtml数据表:

我正在显示[在db中运行查询后]所需的数据表的屏幕截图:

!![图片][1]:

现在我展示的是我得到的:

!![图片一][2]:

我无法理解如何打印正确的行

您必须将EmployeeDutySchedule empDuty=新EmployeeDutySchedule;进入whilers.next{…}部分。使用当前代码,您将更新相同的对象属性,并继续添加相同的对象。为结果集中的每一行创建新实例

    public List<EmployeeDutySchedule> IssuanceTask()
{
     List<EmployeeDutySchedule> empDutyList=new ArrayList<EmployeeDutySchedule>();
    EmployeeDutySchedule empDuty=new EmployeeDutySchedule();
   ResultSet rs=null;
   String query="Select employee_duty_schedule.emp_id, first_name, last_name,  emp_designation, description, task_allocated_id \n" +
 "From\n" +
 " transport_department_schema.employee_duty_schedule, \n" +
"transport_department_schema.m_subtasks, transport_department_schema.employees_information  WHERE\n" +
" employees_information.emp_id=employee_duty_schedule.emp_id AND\n" +
"employee_duty_schedule.task_allocated_id=m_subtasks.subtask_id\n" +
"AND employee_duty_schedule.task_allocated_id LIKE 'L001%'; ";
    System.out.println(query);
      rs=MyQueryExe.executeQuery(query);


            System.out.println("rs "+rs);
            try
        {
        while(rs.next())
        {
         empDuty.setEmpID(rs.getString("emp_id"));
         empDuty.setFirstName(rs.getString("first_name"));
         empDuty.setLastName(rs.getString("last_name"));
         empDuty.setSubTaskID(rs.getString("emp_id"));
         empDuty.setTaskDescription(rs.getString("emp_id"));
         empDuty.setDesignation(rs.getString("emp_designation"));

         empDutyList.add(empDuty);
            System.out.println("size of list  "+empDutyList.size());

        }
        }
        catch(SQLException e)
        {
            e.getStackTrace();
        }
        return empDutyList;
 }
   <h:dataTable value="#{issuanceBean.issuanceList}" var="u" rendered='true'
                     styleClass="infoTable" headerClass="dataTableHeader" rowClasses="dataTableRow">

                     <h:column>
                        <f:facet name="header">
                        Task ID
                        </f:facet>   
                         #{u.subTaskID}
                    </h:column>
                         <h:column>
                        <f:facet name="header">
                        Task Description
                        </f:facet>   
                         #{u.taskDescription}
                    </h:column>
                         <h:column>
                        <f:facet name="header">
                        Employee ID
                        </f:facet>   
                         #{u.empID}
                    </h:column>
                         <h:column>
                        <f:facet name="header">
                        First Name
                        </f:facet>   
                         #{u.firstName}
                    </h:column>

                            <h:column>
                        <f:facet name="header">
                        Last Name
                        </f:facet>   
                         #{u.lastName}
                    </h:column>
                         <h:column>
                        <f:facet name="header">
                        Designation
                        </f:facet>   
                         #{u.designation}
                    </h:column>

                     </h:dataTable>